数据库错误1064

时间:2014-03-06 14:58:42

标签: mysql sql

请问,有人能告诉我的sql请求有什么问题吗?

这是一个结果:

数据库错误:SQL无效:

SELECT 
  COUNT(DISTINCT i.item_id) 
FROM
  (
    (
      va_items i 
      INNER JOIN va_items_categories ic 
        ON i.item_id = ic.item_id
    ) 
    INNER JOIN va_categories c 
      ON c.category_id = ic.category_id
  ) 
WHERE i.is_showing = 1 
  AND i.is_approved = 1 
  AND (
    (
      i.hide_out_of_stock = 1 
      AND i.stock_level > 0
    ) 
    OR i.hide_out_of_stock = 0 
    OR i.hide_out_of_stock IS NULL
  ) 
  AND (
    i.language_code IS NULL 
    OR i.language_code = '' 
    OR i.language_code = 'en'
  ) 
  AND i.sites_all = 1 
  AND i.guest_access_level & 2 
  AND (
    ic.category_id = 53 
    OR c.category_path LIKE '0,48,53,%'
  ) (i.price > 0 
    AND i.is_sold = 0)

这是错误:

  

MySQL错误:您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在第1行'(i.price> 0和i.is_sold = 0)附近使用

一个不能写完整的请求,因为有一个巨大的脚本,用很多逻辑形成这个请求。

请帮帮我

2 个答案:

答案 0 :(得分:2)

(i.price > 0 AND i.is_sold = 0)尝试

之前,您缺少运算符AND / OR
AND (i.price > 0     AND i.is_sold = 0)

OR (i.price > 0     AND i.is_sold = 0)

答案 1 :(得分:0)

(ic.category_id = 53 OR c.category_path LIKE '0,48,53,%') (i.price > 0 AND i.is_sold = 0)

这不是有效的SQL。在闭括号和开括号之间需要一些东西,可能是AND。