我正在尝试从 MySQL 表中选择一个值(id)并在更新语句中使用它 - 所有这些都在 MySQL 查询中。select由2部分组成:如果id存在则返回;如果没有,则完成 2 次插入并返回 id。
我有以下查询:
SELECT
(CASE a.id WHEN '' THEN (
DELIMITER //
INSERT INTO xxxx (item_id, date_created, date_modified) VALUES (3313, NOW(), NOW())//
INSERT INTO yyyy (item_id, locale_id, value, date_created, date_modified) VALUES(LAST_INSERT_ID(), 2, TRIM(SUBSTRING_INDEX('some text: 250 x 46 x 584', ':', 1)), NOW(), NOW())//
SELECT c.id FROM xxxx c JOIN yyyy d WHERE c.item_id=3313 AND d.value='some text' LIMIT 1
) ELSE a.id END
) AS trans_ref_id
FROM xxxx a JOIN yyyy b ON a.id = b.item_id
WHERE b.value='some text'
当我运行它时,我收到以下错误:
SQL 错误 (1064):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 ') ELSE a.id END ) as trans_ref_id FROM xxxx' 附近使用正确的语法
我在这里有错误的方法吗?这个错误来自哪里?