扩展:判断外部值是否在 num列值中
find_in_set
instr
字符串转多列
需求描述
数据库中 num字段值为:
实现的效果:需要将一行数据变成多行
实现的sql
SELECT...)
最终成功实现了以下效果 ~
扩展:判断外部值是否在 num列值中
【5.1】find_in_set
如果匹配到了会得出1;如下图
实际业务中,我们只需要 where find_in_set...(id,ids)>0
就可以判断出;id列,是否在 ids列中出现过;做表连接的时候,也可以这样;
【5.2】instr
我们可以看出,instr是找出 参数2=》也就是上图中的 ‘123’ 在参数...’,就会造成结果错误
可以在字符串两边都加上逗号,确保字符串能完全匹配
字符串转多列
SELECT
-- 截取第一个逗号前边的数据,即为第一个字符串
substring_index( ids..., ',', 1 ) id1,
-- 在52,15字符串中,从字符串中逗号的位置+1开始截取即为第二个字符串
SUBSTR( substring_index( ids, ',', 2 ), LOCATE