SQL语句相当于三元运算符

chi*_*t24 9 mysql sql select if-statement case

我想创建一个与(x - y == 0) ? return 0 : return 100MySQL 相同的语句.可能看起来像这样的东西:

SELECT id, [(integer_val - 10 == 0) ? 0 : 100] AS new_val FROM my_table
Run Code Online (Sandbox Code Playgroud)

我想将每行中的属性与某个数字进行比较,如果该数字与行中的数字之间的差值为0,我希望它给我0,否则,我希望它给我100.

例:

应用此查询my_table(10为'与'对比'):

id  |   integer_val
===================
1   10
2   10
3   3
4   9
Run Code Online (Sandbox Code Playgroud)

会回来这个:

id  |   new_val
===================
1   100
2   100
3   0
4   0
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Sah*_*hah 9

试试这个:

SELECT id, IF(integer_val = 10, 100, 0) AS new_val 
FROM my_table;
Run Code Online (Sandbox Code Playgroud)

要么

SELECT id, (CASE WHEN integer_val = 10 THEN 100 ELSE 0 END) AS new_val 
FROM my_table;
Run Code Online (Sandbox Code Playgroud)