Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Update语句的大小写不起作用_Mysql_Sql - Fatal编程技术网

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);

操作
||
是多个数据库中的字符串连接运算符。

什么是`||'|类型'`?缺少
结束大小写。两次。