MySQL SELECT CASE WHEN列以数字结尾(使用modulo)

时间:2015-04-09 14:22:46

标签: mysql sql

从MySQL表中选择数据时,我想添加一个带flag的列。如果列flag(整数)以0结尾,则key列应包含0, 1 or 5值。

表(输入):

key      c2  c3         c4 
223432   67  20131113   20
222900   83  20131113   5415
222828   22  20131113   7354
222483   43  20131114   20
222401   28  20131113   20

表格(预期输出 - flag列添加):

flag key     c2  c3         c4 
1    223432  67  20131113   20
0    222900  83  20131113   5415
1    222828  22  20131113   7354
1    222483  43  20131114   20
0    222401  28  20131113   20

我知道modulo函数可用于确定key列的最后一个数字。

SELECT key % 10 as x, s.* FROM shipment s;

2 个答案:

答案 0 :(得分:1)

SELECT case when key % 10 in (0,1,5) then 1 else 0 end as x, s.* FROM shipment s;

答案 1 :(得分:0)

我找到了另外两个解决方案。

SELECT IF(key % 10 in (0,1,5), 1, 0) as x, s.* FROM shipment s;

或只是

SELECT key % 10 in (0,1,5) as x, s.* FROM shipment s;