如果图库的mysql表的样子:Mysql的选择非空列
id | pic1 | pic2 | pic3 | pic4
-------------------------------------------------------------
1 | | b.jpg | c.jpg | d.jpg
如何选择的第一个非空的PIC值从列PIC1,PIC2,pic3的,PIC4 ID为画廊= 1?
在示例它上面将从PIC2柱(B.JPG)
如果图库的mysql表的样子:Mysql的选择非空列
id | pic1 | pic2 | pic3 | pic4
-------------------------------------------------------------
1 | | b.jpg | c.jpg | d.jpg
如何选择的第一个非空的PIC值从列PIC1,PIC2,pic3的,PIC4 ID为画廊= 1?
在示例它上面将从PIC2柱(B.JPG)
SELECT COALESCE(pic1, pic2, pic3, pic4, 'backup.gif') AS pic
FROM gallery
WHERE id = 1
backup.gif
如果所有都是空的,将返回值。这也假设通过为空的列为NULL。
SELECT COALESCE(pic1, pic2, pic3, pic4) AS pic
FROM gallery
WHERE id = 1;
假设你使用NULL
表示空值,而不是空白
很想知道你为什么在数据库这样的不灵活的方式组织你的数据吗?
如果所有图片栏都是空的,该怎么办? – Programmer 2011-01-06 17:29:40
我认为您必须在应用程序级别执行此操作 – shankhan 2011-01-06 17:30:46
@Programmer - 至少必须填写其中一列 – Sergio 2011-01-06 17:31:47