2011-01-06 132 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

很想知道你爲什麼在數據庫這樣的不靈活的方式組織你的數據嗎?