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