2016-11-23 39 views
0

我正在做一個查詢與MySQL保存所有返回的對象,但我想識別這些對象基於WHERE塊的語句,也就是說,如果確定的對象滿足具體特徵我想創建一列,並在此列中,如果滿足或不滿足這些特性,則在對應該對象的行中賦值0或1。在有條件的塊中添加表WHERE

這是我的腳本:

SELECT 
    s.id, al.ID, al.j, al.k, al.r, gal.i 
FROM 
    datas as al 
WHERE 
    AND s.id = al.ID 
    AND al.j between 1 and 1 
    AND al.k BETWEEN 15 and 16 
    AND al.r BETWEEN 67 and 72 

上面的腳本工作完美,我能救它返回的所有對象。

所以,我想知道有沒有辦法在添加上述查詢,分塊WHERE,下面的語句,

(Flags & (dbo.environment('cool') + 
dbo.environment('ok') - 
dbo.environment('source'))) = 25 
and ((al_pp x al_pp1)-0.5/3=11 

,並確定滿足對象或不使用這些條件0或者在表格中創建的新列中保存1個。

我瞭解一些這方面的教程,看到一些嘗試與IFCASEADD COLUMNWHEN,但這些都不解決。

在此先感謝

回答

1

MySQL有IF函數,見here

所以,你可以在查詢簡單地使用它:

SELECT IF((Flags & (dbo.fPhotoFlags('SATURATED') + 
dbo.fPhotoFlags('BRIGHT') + 
dbo.fPhotoFlags('EDGE'))) = 0 
and petroRad_r < 18 
and ((colc_u - colc_g) - (psfMag_u - psfMag_g)) < -0.4 
, 1 --// VALUE IF TRUE 
, 0 --// VALUE IF FALSE 
) as conditional_column, ... rest of your query 
+0

我應該把'塊內選擇IF' 'SELECT'還是在'WHERE'塊? 非常感謝你 –

+0

在選擇條款 –

+0

謝謝你的幫助 –