基于多个其他列的值创建新列(MySQL)

rryofs0p  于 2023-05-21  发布在  Mysql
关注(0)|答案(1)|浏览(74)

我试图在MySQL中创建一个新的列的值的基础上显示在图像链接的列。我想让它这样,每当一列的值为1时,它就会将列名添加到新列中。例如,如果列“genre_drama”和“genre_comedy”的值为1,我希望新列的值类似于“genre_drama,genre_comedy”。有麻烦弄清楚这一点,所以帮助将不胜感激!
columns

cgh8pdjw

cgh8pdjw1#

使用CONCAT_WS()函数,以逗号作为分隔符。下面每个参数的值应该是列名或null,具体取决于该列的值是否为1。结果中不会包含空值。

SELECT CONCAT_WS(', ', 
                IF(genre_drama = 1, 'genre_drama', NULL),
                IF(genre_comedy = 1, 'genre_comedy', NULL),
                IF(genre_adventure = 1, 'genre_adventure', NULL),
                ...) AS genres
FROM yourTable

如果不想全部输入,可以使用INFORMATION_SCHEMA.COLUMNS动态构造查询。

相关问题