2011-01-06 55 views
0

如果图库的mysql表的样子:Mysql的选择非空列

id  | pic1 | pic2 | pic3 |  pic4  
------------------------------------------------------------- 
    1  |   | b.jpg | c.jpg |  d.jpg 

如何选择的第一个非空的PIC值从列PIC1,PIC2,pic3的,PIC4 ID为画廊= 1?

在示例它上面将从PIC2柱(B.JPG)

+1

如果所有图片栏都是空的,该怎么办? – Programmer 2011-01-06 17:29:40

+0

我认为您必须在应用程序级别执行此操作 – shankhan 2011-01-06 17:30:46

+0

@Programmer - 至少必须填写其中一列 – Sergio 2011-01-06 17:31:47

回答

3
SELECT COALESCE(pic1, pic2, pic3, pic4, 'backup.gif') AS pic 
FROM gallery 
WHERE id = 1 

backup.gif如果所有都是空的,将返回值。这也假设通过为空的列为NULL

1
SELECT COALESCE(pic1, pic2, pic3, pic4) AS pic 
FROM gallery 
WHERE id = 1; 

假设你使用NULL表示空值,而不是空白

0

很想知道你为什么在数据库这样的不灵活的方式组织你的数据吗?