我正在寻找如何使用case-when语法生成一个insert命令,该语法在其中使用子查询。这听起来很复杂。
我尝试了谷歌搜索并制作了一些脚本但现在还没有改编 - 我想原因是我不熟悉MySQL中的case-when
命令以及case-when
的嵌入式子查询
请按照您的了解分享。
INSERT INTO `someTable` (`someColumn`, `someColumn2`) VALUES
( SUB-QUERY-IN-CASE-WHEN-GOES-HERE, 'someColumnValue'),
答案 0 :(得分:1)
INSERT INTO `someTable` (`someColumn`)
select case when a = 1
then 'value1'
else 'someColumnValue'
end
from your_table
答案 1 :(得分:1)
你可以尝试这个伴侣:
INSERT INTO `someTable` (`someColumn`, `someColumn2`)
SELECT
CASE
WHEN someValue = 1 THEN (
SELECT
anotherValue
FROM
another_table
WHERE
another_condition = 1
)
WHEN someValue = 2 THEN (
SELECT
anotherValue
FROM
another_table
WHERE
another_condition = 2
)
ELSE (
SELECT
anotherValue
FROM
another_table
WHERE
another_condition = 0
)
END 'someColumn',
'someColumn2'
FROM
other_table
WHERE
your_condition = 1;
PS:
很好编辑btw,甚至没有评论/回答的单一回复。尽可能请尝试在应用程序端计算/处理数据,但不建议实施IMHO。干杯