mysql的case when 用法很简单,先看两个实例,其实两种写法都是可以达到同一种效果
第一种写法,case 指定列,简单函数
SELECT
CASE mms_currency
WHEN '¥' THEN
'人民币'
WHEN '$' THEN
'美元' ELSE '英镑'
END 币种,
a.*,
b.suppcoller_name,
b.suppcoller_code,
e.mm_no
FROM
ms_material_suppcoller a
LEFT JOIN ms_suppcoller b ON a.mms_suppcoller_id = b.id
LEFT JOIN ms_material e ON a.mms_material_id = e.id
第二种写法,不case指定列,搜索函数
SELECT
CASE
WHEN mms_currency= '¥' THEN
'人民币'
WHEN mms_currency='$' THEN
'美元'
ELSE '英镑'
END 币种,
a.*,
b.suppcoller_name,
b.suppcoller_code,
e.mm_no
FROM
ms_material_suppcoller a
LEFT JOIN ms_suppcoller b ON a.mms_suppcoller_id = b.id
LEFT JOIN ms_material e ON a.mms_material_id = e.id
接下来看下实现效果
第三种用法,利用case when 进行批量修改,不过在项目代码中,不建议这么使用,可能会加大数据库服务器的压力哦
UPDATE ms_material_suppcoller
SET mms_currency =
CASE
WHEN mms_currency IS NULL THEN
'¥'
END
WHERE
1 = 1;