写在前面

工作中碰到的sql,不熟练

参考文章:

https://juejin.cn/post/7166554313803137054?searchId=20240228104719BDC66599EAB83DC1ADD3

在MySQL中,可以使用内置的FIND_IN_SET函数来实现类似的功能。FIND_IN_SET函数可以在逗号分隔的字符串中搜索指定的值,并返回其在字符串中的位置。因此,你可以将逗号分隔的字符串作为输入,然后将其拆分成单个的字符串,然后将每个单个的字符串与表中的列进行比较。

下面是如何在MySQL中实现类似的操作:

1
2
3
SELECT GROUP_CONCAT(name) AS names
FROM jy_dict
WHERE FIND_IN_SET(dictcode, #{ids}) > 0;

这里假设 #{ids} 是一个逗号分隔的字符串,例如 '1,2,3,4'FIND_IN_SET 函数会搜索 dictcode 是否在 #{ids} 中,如果找到了,则返回其在字符串中的位置(从 1 开始),如果没找到,则返回 0。因此,FIND_IN_SET(dictcode, #{ids}) > 0 条件将匹配在 #{ids} 中的任何 dictcode

这种方法在MySQL中可以实现将逗号分隔的字符串转换成单个的值,并在查询中使用它们。