2014-03-06 38 views
0

請問有人能告訴我的sql請求有什麼問題嗎?數據庫錯誤1064

這是一個結果:

數據庫錯誤:無效的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 Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(i.price > 0 AND i.is_sold = 0)' at line 1

一個不能老是寫完整的請求,因爲有巨大的腳本,用很多邏輯形成這個請求。

幫助我,請

回答

2

你缺少運營商和/或(i.price > 0 AND i.is_sold = 0)前嘗試

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

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

是的,它有幫助!謝謝) – volodymyr3131

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

這不是有效的SQL。您需要在近距和開放式括號之間插入一些東西,可能是一個AND。