具有多个值的MYSQL CASE THEN语句

Sem*_*iev 15 mysql

我正在尝试用CASE语句选择多个值.我注意到我们做不到

CASE 
    WHEN wall.type="bk" 
    THEN books.id1,books.id2, // and so on
END as column_1,
Run Code Online (Sandbox Code Playgroud)

有没有办法THEN处理多个列,或者我们需要简单地编写一堆CASE THEN语句?这看起来很乱

Mos*_*cho 18

不,这只是一个单一的价值.另外,使用"多列"并将这些多列命名为是对的column_1,对吧?:)

您可以使用另一列来存储其他id(类似的情况)并使用null来表示else值,就像您现在正在做的那样.

例:

CASE 
    WHEN wall.type="bk" 
    THEN books.id1
END as column_1,
CASE 
    WHEN wall.type="bk" 
    THEN books.id2
END as column_2
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看官方文档.


ale*_*oot 5

不。CASE语句只能返回一个值,所以实现你想要的唯一方法是复制案例......

应该优化数据库服务器,并且在相同条件下只执行一次检查......