Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 案例陈述全部返回“;否则";价值_Mysql_Case - Fatal编程技术网

Mysql 案例陈述全部返回“;否则";价值

Mysql 案例陈述全部返回“;否则";价值,mysql,case,Mysql,Case,我的查询中有case语句,我在其中查看并验证输入的值。我不确定我是否正确地应用了case语句,因为所有输出都从查询的“ELSE”部分返回值。我知道我的数据确实包含与其他两个条件匹配的正确值,但即使这些条件也返回“ELSE”值 以下是我的案例陈述: , MAX(CASE WHEN line_field_id = 2199 AND line_value REGEXP '^HSA[0][0-5][0-9][0-9][0-9][0-9]$' AND line_value LIKE B

我的查询中有case语句,我在其中查看并验证输入的值。我不确定我是否正确地应用了case语句,因为所有输出都从查询的“ELSE”部分返回值。我知道我的数据确实包含与其他两个条件匹配的正确值,但即使这些条件也返回“ELSE”值

以下是我的案例陈述:

,   MAX(CASE
        WHEN line_field_id = 2199 AND line_value REGEXP '^HSA[0][0-5][0-9][0-9][0-9][0-9]$' AND line_value LIKE BINARY 'HSA%' THEN line_value
        WHEN line_field_id = 2199 AND line_value REGEXP '^A[0-9][0-9][0-9][0-9][0-9][0-9]$' AND line_value LIKE BINARY 'A%' THEN line_value 
        ELSE 'INVALID' 
    END)                'scanned_value'
两列的一些示例值:

   row_number | line_value | line_field_id | 
    ----------+------------+---------------+
    1         |HSA014173   |2199           |
    2         |HSA013765   |2199           |    
    3         |A062345     |2199           |    
    4         |ZHR098765   |2199           |   
    5         |A062499     |2199           |   
    6         |HSA045000   |2416           |    
    7         |HSA049800   |2416           |    
    8         |A069999     |2416           |
期望结果集:

   row_number | Result     | line_field_id | 
    ----------+------------+---------------+
    1         |HSA014173   |2199           |
    2         |HSA013765   |2199           |    
    3         |A062345     |2199           |    
    4         |INVALID     |2199           |   
    5         |A062499     |2199           |   

是否要编写SELECT语句,其中提供表中的所有有效行?列的类型是什么?使用类型为
VARCHAR
的问题在我这方面是不可复制的。我想从表格中选择行\字段\ id=2199且符合给定标准的所有值(大写HSA/a,后跟数字)。如果“扫描的_值”与CASE语句标准不匹配,则必须将其设置为“无效”。行_值为VARCHAR(165),行_字段_id为INT(10)。当我取出“ELSE”语句时,返回的值是正确的,显示为“无效”的值是空的