使用条件在块中添加表格中的列WHERE

时间:2016-11-23 21:32:53

标签: mysql sql

我正在用MySQL进行查询以保存返回的所有对象,但我想根据块WHERE的语句识别这些对象,也就是说,如果确定的对象满足特定的特性我想创建一个列,在这个列中,如果满足或不满足这些特性,我会在对应的行中赋值0或1。

这是我的剧本:

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 个答案:

答案 0 :(得分: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