我试图在MySQL中创建一个新的列的值的基础上显示在图像链接的列。我想让它这样,每当一列的值为1时,它就会将列名添加到新列中。例如,如果列“genre_drama”和“genre_comedy”的值为1,我希望新列的值类似于“genre_drama,genre_comedy”。有麻烦弄清楚这一点,所以帮助将不胜感激!columns
cgh8pdjw1#
使用CONCAT_WS()函数,以逗号作为分隔符。下面每个参数的值应该是列名或null,具体取决于该列的值是否为1。结果中不会包含空值。
CONCAT_WS()
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动态构造查询。
INFORMATION_SCHEMA.COLUMNS
1条答案
按热度按时间cgh8pdjw1#
使用
CONCAT_WS()
函数,以逗号作为分隔符。下面每个参数的值应该是列名或null,具体取决于该列的值是否为1
。结果中不会包含空值。如果不想全部输入,可以使用
INFORMATION_SCHEMA.COLUMNS
动态构造查询。