我有一张这样的桌子
id | a | b | c | status
---+---+---+---+--------
1 | 3 |12 |6 | b
2 | 5 |8 |56 | c
3 | 99|7 |23 | a
我想检测哪一列具有最大值(1,2 或 3),然后记录该行最大值的“状态”(我仅使用 a,b,c 作为示例)
我怎么能这样做?
谢谢!
我有一张这样的桌子
id | a | b | c | status
---+---+---+---+--------
1 | 3 |12 |6 | b
2 | 5 |8 |56 | c
3 | 99|7 |23 | a
我想检测哪一列具有最大值(1,2 或 3),然后记录该行最大值的“状态”(我仅使用 a,b,c 作为示例)
我怎么能这样做?
谢谢!
SELECT *,
CASE GREATEST(a,b,c)
WHEN a THEN 'a'
WHEN b THEN 'b'
WHEN c THEN 'c'
END AS status
FROM yourtable
在线查看它:sqlfiddle
重写为UPDATE
语句:
UPDATE yourtable
SET status =
CASE GREATEST(a,b,c)
WHEN a THEN 'a'
WHEN b THEN 'b'
WHEN c THEN 'c'
END