Mysql Update语句的大小写不起作用
我做错了什么,我总是在语法方面出错Mysql Update语句的大小写不起作用,mysql,sql,Mysql,Sql,我做错了什么,我总是在语法方面出错 UPDATE common_lookup SET common_lookup_column = CASE WHEN common_lookup_table = 'MEMBER' THEN CASE WHEN common_lookup_type IN ('INDIVIDUAL', 'GROUP') THEN common_lookup_table || '_TYPE' WHEN common
UPDATE common_lookup
SET common_lookup_column =
CASE
WHEN common_lookup_table = 'MEMBER' THEN
CASE
WHEN common_lookup_type IN ('INDIVIDUAL', 'GROUP') THEN
common_lookup_table || '_TYPE'
WHEN common_lookup_type LIKE '%CARD' THEN
'CREDIT_CARD_TYPE'
END
ELSE
common_lookup_table || '_TYPE'
END;
在MySQL中,使用
concat()
函数:
UPDATE common_lookup
SET common_lookup_column = (CASE WHEN common_lookup_table = 'MEMBER'
THEN (CASE WHEN common_lookup_type IN ('INDIVIDUAL', 'GROUP')
THEN concat(common_lookup_table, '_TYPE')
WHEN common_lookup_type LIKE '%CARD'
THEN 'CREDIT_CARD_TYPE'
END)
ELSE concat(common_lookup_table, '_TYPE')
END);
假设您不打算从内部案例
中获得NULL
值,您可以将此逻辑简化为:
UPDATE common_lookup
SET common_lookup_column = (CASE WHEN common_lookup_table = 'MEMBER' AND
common_lookup_type LIKE '%CARD'
THEN 'CREDIT_CARD_TYPE'
ELSE concat(common_lookup_table, '_TYPE')
END);
操作
||
是多个数据库中的字符串连接运算符。什么是`||'|类型'`?缺少结束大小写代码>。两次。