在MySQL中执行insert命令时与子查询一起使用case?

在MySQL中执行insert命令时与子查询一起使用case?,mysql,subquery,case-when,Mysql,Subquery,Case When,我正在寻找如何制作一个insert命令,当语法在其中使用子查询时使用该用例。我知道这听起来很复杂 我尝试了谷歌搜索并编写了一些脚本,但目前还没有完成-我想原因是我不熟悉MySQL中的case when命令以及case when的嵌入式子查询 请分享你所知道的 INSERT INTO `someTable` (`someColumn`, `someColumn2`) VALUES ( SUB-QUERY-IN-CASE-WHEN-GOES-HERE, 'someColumnValue'), 你可

我正在寻找如何制作一个insert命令,当语法在其中使用子查询时使用该用例。我知道这听起来很复杂

我尝试了谷歌搜索并编写了一些脚本,但目前还没有完成-我想原因是我不熟悉MySQL中的
case when
命令以及
case when
的嵌入式子查询

请分享你所知道的

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

你可以试试这个伴侣:

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;  
附言:


很好的编辑顺便说一句,甚至没有一个评论/答案的回应。请尽可能在应用程序端计算/处理数据,这不建议实施IMHO。干杯

请提供更多详细信息。显示一些输入数据以及您试图从中获得的结果。有许多不同的方法可以完成您正在尝试的工作,我们需要更多的细节来了解正确的解决方案。如果您“不熟悉MySQL中的case-when命令以及case-when的嵌入式子查询”,您如何知道您在寻找什么?提问的最佳方式是提供示例数据和所需结果。他希望
然后
否则
结果成为子查询。
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;