我有一个关于 SQL 的问题。我如何使用分隔符 '' 字符拆分字符串并访问该部分以更新行? .. 澄清一下:
表格如下:
Products ( Name, Colors, Data1, Data2, Data3)
a red green blue
b white black
我想做类似的事情:
Products ( Name, Colors, Data1, Data2, Data3)
a red green blue red green blue
b white black white black
最佳答案
看起来列数(Data1、Data2、Data3)不是动态的。
所以我假设“颜色”字段最多可以包含三个由空格分隔的单词。
然后快速而肮脏的方法是编写一系列像这样的更新语句:
UPDATE Products SET Data1 = get_color(Colors, ' ', 1);
UPDATE Products SET Data2 = get_color(Colors, ' ', 2);
UPDATE Products SET Data3 = get_color(Colors, ' ', 3);
其中 get_color 将是一个自定义函数,它返回给定字符串中的第 n 个单词:
CREATE FUNCTION get_color(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
关于mysql - SQL 更新 - 字符串拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6424835/