SELECT * FROM mm_tfs
WHERE product_slug LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
LIMIT 4
返回4個值就像我問,但下面的語句返回0 - 是有關於使用或聲明,我不熟悉的規則?我的假設是,它應該返回1中的所有值(或更多,如果它不是極限)。SQL LIMIT返回任何結果,其中沒有限制返回結果
SELECT * FROM mm_tfs
WHERE (product_slug LIKE '%football%'
AND schoolid = '8' AND category_id ='21')
OR (product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21')
LIMIT 4
注通過cyberkiwi第一或Q2的部分是完全一樣的WHERE子句上Q1
product_description LIKE '%football%' AND schoolid = '8' AND category_id ='21
不受本身或陳述確實產生,只要所希望的結果因爲它沒有限制。當OR語句與LIMIT一起使用時,返回0個值。
SELECT * FROM mm_tfs
WHERE product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
LIMIT 4
^- 產生0結果
SELECT * FROM mm_tfs
WHERE product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
^- 產生結果
這樣做的奇怪的是,所有這些查詢的產品在我PHPMYADMIN權效應SQL查詢窗口,但不在應用程序本身中。
看起來是一個布爾邏輯錯誤,而不是特定於OR。將整個東西包裹在大括號中,這是你(和)周圍的整個條件。 – JonH 2011-01-25 19:33:09
不,它返回值 – 2011-01-25 19:35:20
這非常有趣。有人可以解釋爲什麼它錯了,而不是給予替代方法? +1 – Nishant 2011-01-25 19:42:27