我有一个字符串值为"x,x,x,x,x,x,x,x..."
的列。
我们希望遍历所有行并且只有N个项目(其他所有项目都应删除)。
分隔符为','
。
X可以有不同的长度。
我该怎么做?
答案 0 :(得分:2)
您可以使用MySQL函数SUBSTRING_INDEX执行此操作:
要获得此部分,假设您需要前10个项目:
SET @N := 10;
SELECT SUBSTRING_INDEX(your_column, ',', @N) FROM your_table;
要更新你的表格:
UPDATE your_table SET
your_column = SUBSTRING_INDEX(your_column, ',', @N);
答案 1 :(得分:0)
您可能需要使用LOCATE
五次! :P
这可能是一个hackjob,但没有别的办法:
LOCATE('bar', 'foobarbar', 5)
所以你的代码将是这样的:
LOCATE(',', 'x,x,x,x,x,x,x,x,..', LOCATE(',', 'x,x,x,x,x,x,x,x,..', LOCATE(',', 'x,x,x,x,x,x,x,x,..', LOCATE(',', 'x,x,x,x,x,x,x,x,..', LOCATE(',', 'x,x,x,x,x,x,x,x,..')))))
这可能有用吗?
或者你可以使用:SUBSTRING_INDEX()
:
SUBSTRING_INDEX('x,x,x,x,x,x,x,x,..', ',', 5)