扩展:判断外部值是否在 num列值中
find_in_set
instr
字符串转多列
需求描述
数据库中 num字段值为:
实现的效果:需要将一行数据变成多行
实现的sql
SELECT..., to_str)
参数名 解释
str 需要进行替换的字符串
from_str 需要被替换的字符串
to_str 需要替换的字符串
举例
将分隔符逗号替换为空...但这有一个问题,如果逗号分隔开的字符串,包含我们查找的字符串,也会显示出来,这就不符合我们 根据分隔符 , 判断 查找字符串id 是否出现在 ids 中;
如下:
我们本来想查以逗号为分隔的完全匹配...’,就会造成结果错误
可以在字符串两边都加上逗号,确保字符串能完全匹配
字符串转多列
SELECT
-- 截取第一个逗号前边的数据,即为第一个字符串
substring_index( ids..., ',', 1 ) id1,
-- 在52,15字符串中,从字符串中逗号的位置+1开始截取即为第二个字符串
SUBSTR( substring_index( ids, ',', 2 ), LOCATE