2013-07-02 48 views
1

這是一種很難解釋,但我正在尋找替代本與IF的存在是爲了提高性能:如何指定列名的IF EXISTS

Select ... , 
    IF((SELECT COUNT(t.tab_id) FROM tabs t WHERE t.marker_id = m.marker_id)>0,1,0) multimedia, .... 
FROM markers m 
WHERE .... 

在此查詢,我想有一個如果是多媒體,則稱爲「多媒體」的臨時列由1填充,如果不存在,則爲0。

此代碼是由PHP執行...

回答

1
SELECT 
    CASE 
    WHEN Exists(Select 1 FROM tabs t WHERE t.marker_id = m.marker_id) 
     THEN 1 
    ELSE 0 
    END multimedia, 
    ... 
+0

你好,感謝您的回覆,但我真的試圖避免COUNT()函數,以提高查詢性能... – user2543462

+0

對不起!誤讀爲「替換存在」替換爲「存在」。 – asantaballa

+0

非常感謝你!雖然性能沒有變好... – user2543462