MYSQL案例在语句中不起作用

时间:2018-01-08 06:30:16

标签: mysql

MYSQL:

SELECT    `item`.*, 
          CASE( 
             WHEN `item_sub_category`.`sub_category` IN('65', '66','67', '68') 
             AND       `item_category`.`category` IN('35', '36') 
             THEN 0 ELSE 1
          ) AS condition 
FROM      `items` 
LEFT JOIN `item_category` 
    ON        `item_category`.`item` = `item`.`id` 
LEFT JOIN `item_sub_category` 
    ON        `item_sub_category`.`item` = `item`.`id` 
LEFT JOIN `cart` 
    ON        `cart`.`item` = `item`.`id` 
    AND       `cart`.`USER` = 3 
LEFT JOIN `user_users` 
    ON        `user_users`.`id` = 3 
WHERE     `cart`.`item` IS NULL 
    AND       `item_sub_category`.`sub_category` IN('65','66', '67', '68') 
    OR        `item_category`.`category` IN('35', '36') 
GROUP BY  `item`.`id` 
ORDER BY  `item`.`id` DESC, `item`.`feature` DESC 
limit 4

任何人都可以告诉我为什么显示语法错误以及如何解决语法错误?在给定的Line下面可能会出现语法错误。

  CASE( 
     WHEN `item_sub_category`.`sub_category` IN('65', '66','67', '68') 
     AND       `item_category`.`category` IN('35', '36') 
     THEN 0 ELSE 1
  ) AS condition 

1 个答案:

答案 0 :(得分:2)

就像:

CASE 
     WHEN item_sub_category.sub_category IN(65, 66,67, 68) 
     AND  item_category.category IN(35, 36) 
     THEN 0 ELSE 1 END
   AS condition 

即。 put和 END 不要使用括号。如果使用括号,则应封装整个case语句,而不是when。 此外,如果数字是整数,您可以避免使用单引号。