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
答案 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
。
此外,如果数字是整数,您可以避免使用单引号。