Mysql 错误:和的参数必须是布尔类型,而不是文本类型

Mysql 错误:和的参数必须是布尔类型,而不是文本类型,mysql,sql,Mysql,Sql,我被下面的问题弄糊涂了,请问有什么问题 SELECT * FROM my_table WHERE col_A <> 'Hello' AND col_B <> 'Holla' AND col_B <> 'Bonjour' AND (CASE WHEN col_c = 6 AND Language_col = 'Fr'THEN 'Français' WHEN col_c = 9 AND Language_co

我被下面的问题弄糊涂了,请问有什么问题

SELECT * FROM my_table 
WHERE 
    col_A <> 'Hello'
    AND col_B <> 'Holla'
    AND col_B <> 'Bonjour'

    AND (CASE WHEN col_c = 6 AND Language_col = 'Fr'THEN 'Français'
       WHEN col_c  = 9  AND Language_col = 'Fr'THEN 'Français'        
       WHEN col_c  = 12 AND Language_col = 'Eng' THEN 'English'
       WHEN col_c  = 4 AND Language_col = 'US' THEN 'Engish'
       ELSE Language END)

order by Date_col  
从my_表中选择*
哪里
“你好”
还有col_B'Holla'
还有col_B‘你好’
和(当col_c=6和Language_col='Fr'然后是'Français'时的情况)
当col_c=9,Language_col='Fr'时,则为'Français'
当col_c=12和Language_col='Eng'时,则为'English'
当col_c=4和Language_col='US'时,则为'Engish'
其他语文(完)
按日期订购
我得到了这种类型的错误:

错误:和的参数必须是布尔类型,而不是文本类型


您需要添加一些筛选值,以便在-

SELECT * FROM my_table 
WHERE 
    col_A <> 'Hello'
    AND col_B not in ('Holla', 'Bonjour')
    AND (CASE WHEN col_c = 6 AND Language_col = 'Fr'THEN 'Français'
       WHEN col_c  = 9  AND Language_col = 'Fr'THEN 'Français'        
       WHEN col_c  = 12 AND Language_col = 'Eng' THEN 'English'
       WHEN col_c  = 4 AND Language_col = 'US' THEN 'Engish'
       ELSE Language END in ('Français','English'))
order by Date_col 
从my_表中选择*
哪里
“你好”
和col_B不在('Holla','Bonjour'))
和(当col_c=6和Language_col='Fr'然后是'Français'时的情况)
当col_c=9,Language_col='Fr'时,则为'Français'
当col_c=12和Language_col='Eng'时,则为'English'
当col_c=4和Language_col='US'时,则为'Engish'
其他语言以('Français','English')结尾)
按日期订购

如果您想要一个新列,则需要将
大小写
表达式放入
选择
,而不是
其中

SELECT t.*,        
       (CASE WHEN col_c = 6 AND Language_col = 'Fr' THEN 'Français'
             WHEN col_c = 9 AND Language_col = 'Fr' THEN 'Français'        
             WHEN col_c = 12 AND Language_col = 'Eng' THEN 'English'
             WHEN col_c = 4 AND Language_col = 'US' THEN 'English'
             ELSE Language
        END)
FROM my_table t
WHERE col_A <> 'Hello' AND
      col_B NOT IN ( 'Holla', 'Bonjour' )
ORDER BY Date_col ;
选择t.*,
(当col_c=6且语言_col='Fr'然后是'Français'时的情况)
当col_c=9,Language_col='Fr'时,则为'Français'
当col_c=12和Language_col='Eng'时,则为'English'
当col_c=4和Language_col='US'时,则为'English'
其他语言
(完)
从我的桌子上
“你好”和
col_B不在('Holla','Bonjour'))
按日期订购;

跳过
大小写
表达式,改用
/
!你能告诉我怎么做吗,我对这个有点陌生,呵呵^^谢谢你,如果col_c=6,Language_col='Fr',你认为会发生什么?在查询中使用硬编码值,如6、8、12等通常是个坏主意。我们如何知道这些值的含义?请参阅,以提供示例数据和预期结果,这样我们就可以停止使用。谢谢,但这不起作用。我有大量的数据库:/