在MySQL中执行insert命令时使用子查询时的情况?

时间:2015-04-21 00:37:41

标签: mysql subquery case-when

我正在寻找如何使用case-when语法生成一个insert命令,该语法在其中使用子查询。这听起来很复杂。

我尝试了谷歌搜索并制作了一些脚本但现在还没有改编 - 我想原因是我不熟悉MySQL中的case-when命令以及case-when的嵌入式子查询

请按照您的了解分享。

INSERT INTO `someTable` (`someColumn`, `someColumn2`) VALUES
( SUB-QUERY-IN-CASE-WHEN-GOES-HERE, 'someColumnValue'),

2 个答案:

答案 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。干杯