如何:
从 table1.column1 获取值(例如 abc)
table1.column1=abc
将它们与某些固定字符串连接起来,例如
xxx yyy zzz
将结果作为单独的行插入到 table2.column2 中。最终结果应该是具有如下值的行:
table2.column2=abc_xxx 表2.column2=abc_yyy table2.column2=abc_zzz
(table2 有一个连接列,指示 table2.column2 记录对应的 ID,以防万一)
- 对 table1.column1 中 table1.item_id > 100 的所有记录重复此过程
编辑:为了方便起见,我希望最终结果行序列如下所示:
source1_xxx
源1_yyy
来源1_zzz
源2_xxx
源2_yyy
source2_zzz
不喜欢:
source1_xxx
源2_xxx
源1_yyy
源2_yyy
来源1_zzz
source2_zzz
最佳答案
如果我理解正确的话,您需要为 Table1 中的每个现有行添加 N(例如 3)个条目。如果是这样,您可以将 Table1 交叉连接到值的投影,如下所示:
INSERT INTO Table2(column2)
SELECT CONCAT(t1.column1, '_', x.col)
FROM Table1 t1
CROSS JOIN
(SELECT 'xxx' AS col
UNION
SELECT 'yyy'
UNION
SELECT 'zzz') x;
编辑
查询已更新,以了解排序和过滤要求:
INSERT INTO Table2(column2)
SELECT CONCAT(t1.column1, '_', x.col)
FROM Table1 t1
CROSS JOIN
(SELECT 'xxx' AS col
UNION
SELECT 'yyy'
UNION
SELECT 'zzz') x
WHERE t1.ID > 100
ORDER BY t1.column1 ASC, x.col ASC;
关于mysql - 如何从一个表列中获取值,将它们与字符串连接并将它们插入到另一表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29467803/