我有這個疑問,其運行良好:MySQL查詢問題 - 嵌套和/或聲明
SELECT count(distinct p.products_id) as total
FROM (products p
LEFT JOIN manufacturers m
USING(manufacturers_id), products_description pd,
categories c, products_to_categories p2c)
LEFT JOIN meta_tags_products_description mtpd
ON mtpd.products_id= p2c.products_id
AND mtpd.language_id = 1
WHERE (p.products_status = 1 AND p.products_id = pd.products_id
AND pd.language_id = 1 AND p.products_id = p2c.products_id
AND p2c.categories_id = c.categories_id
AND (
(pd.products_name LIKE '%3220%'
OR p.products_model LIKE '%3220%'
OR m.manufacturers_name LIKE '%3220%'
OR (mtpd.metatags_keywords LIKE '%3220%'
AND mtpd.metatags_keywords !='')
OR
(mtpd.metatags_description LIKE '%3220%'
AND mtpd.metatags_description !='')
OR
pd.products_description LIKE '%3220%'
)
)
)
但我想無論是尋找那些WHERE子句,或給出一個數字關鍵字值作爲例子,搜索對於產品ID,只需將此添加到上一個查詢中即可:
OR (p.products_id=3220)
但由於某種原因,加法凍結了mysql服務器。它只是繼續執行查詢,它永遠不會結束。我必須手動重新啓動服務器。我做錯了什麼?
哇。你知道你可以對齊和縮進SQL,對吧? – GolezTrol 2011-05-21 16:39:00
該查詢看起來很醜! – Lobo 2011-05-21 16:46:03
你究竟在哪裏添加OR?最後一個括號之後? – squawknull 2011-05-21 16:46:31