MySQL中的一些特殊函数

FIELD

FIELD(s,s1,s2...)

复制SELECT FIELD("c", "a", "b", "c", "d", "e"); -- 返回字符串 c 在列表值中的位置,索引位置从 1 开始,没有返回 0

FIND_IN_SET

FIND_IN_SET(s1,s2)

复制SELECT FIND_IN_SET("c", "a,b,c,d,e"); -- 使用,分割为列表,返回字符串 c 在列表中的位置,索引位置从 1 开始,没有返回 0

对于一对多的情况,可能还是left join的效率更高。

LEAD

复制LEAD(<expression>[,offset[, default_value]]) OVER (
    PARTITION BY (expr)
    ORDER BY (expr)
) 
复制select 
dt,
lead(1) over(order by dt desc) as num_1
from test;

dt为创建时间,按照dt倒序并取第二条,就是前一天数据

参考

MySQL 中 FIND_IN_SET 使用和性能
关于 find_in_set 的性能问题

posted @   strongmore  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2021-09-17 IDEA对jsr305的Nonnull注解和Guava的Beta注解的支持
点击右上角即可分享
微信分享提示