我有一个插入查询,其中一个值需要是从select语句返回的管道分隔字符串。选择语句并插入两者完全独立,但是当两个查询合并时,mySql会出现语法错误。
这是我的插入查询
INSERT INTO sales (site_id, name, start_date, end_date, per_item_discount, enabled,entry_ids)
VALUES (1, 'auto', 1448662620, 1448749020, 2.0000, 1,
(SELECT GROUP_CONCAT(DISTINCT entry_id SEPARATOR '|')
FROM data
JOIN relationships ON data.entry_id = relationships.parent_id
WHERE (relationships.child_id = 18 AND data.id_5 = 'VHK-SG') ))
现在这两个查询单独,select语句和使用硬编码的entry_ids(如'1 | 2')插入,效果很好,但组合不是。
我不确定我在这里失踪了什么。
感谢任何帮助。
答案 0 :(得分:1)
您需要更改语法。检查this。
您应该执行以下操作:
INSERT INTO sales
(site_id,name,start_date,end_date,per_item_discount,enabled,entry_ids)
SELECT 1,'auto',1448662620,1448749020,2.0000,1,GROUP_CONCAT(DISTINCT entry_id SEPARATOR '|')
FROM data JOIN relationships ON data.entry_id = relationships.parent_id
WHERE (relationships.child_id = 18 AND data.id_5 = 'VHK-SG')