说明
substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)
案例
SELECT SUBSTRING_INDEX('15,151,152,16', ' , ' , 1); //结果是15
//以第一个逗号为分割截取
SELECT SUBSTRING_INDEX('15,151,152,16', ' , ' , 2); //结果是15,151
//以第二个逗号为分割截取
SELECT SUBSTRING_INDEX('15,151,152,16', ' , ' , -1); //结果是16
//从后面开始算第一个逗号
根据自己设定顺序排序
SELECT id, substring_index( '1,3,2,4,6,5', id, 1 ) sub_data
FROM test
WHERE id IN ( 1,3,2,4,6,5 )
ORDER BY substring_index( '1,3,2,4,6,5', id, 1 ) asc;
结果是
id sub_data
1
3 1,
2 1,3,
4 1,3,2,
6 1,3,2,4,
5 1,3,2,4,6,
substring_index( '1,3,2,4,6,5', id, 1 ) 获取每个id前面的数据,比如:id=1 对于数据“1,3,2,4,6,5”,没有数据sub_data=‘’
id=2 对于数据“1,3,2,4,6,5”,sub_data='1,3,'
ORDER BY substring_index( '1,3,2,4,6,5', id, 1 ); 会根据你“1,3,2,4,6,5”的顺序进行排序