2013-05-18 41 views
0

下面的sql查询工作正常,我不知道什么错我停止了抓取记录。sql查询有什么问题

$data = mysql_query("SELECT * FROM product_table where pid=$saa1 OR gpid=$saa1 OR  
category_id=$saa1 ORDER BY autoid desc limit $no2,20") 
or die(mysql_error()); 

当我删除条款的作品精细例如

$data = mysql_query("SELECT * FROM product_table ORDER BY autoid desc limit 
$no2,20") 
or die(mysql_error()); 

请看看,让我知道我在做什么错....

问候,

+2

我怀疑第二部作品。 –

+0

o对不起,这里不应该在这里... –

+0

在mysql中执行上述查询时实际得到的是什么 –

回答

-1

Try:

$data = mysql_query("SELECT * FROM product_table where (pid=$saa1 OR gpid=$saa1 OR  
category_id=$saa1) ORDER BY autoid desc limit $no2,20") 
or die(mysql_error()); 
+0

为什么会有帮助? – Drew

+0

在语法上,这隔离了WHERE子句中的OR语句。我会在SQL Server中使用这样的东西。我认为这里是一样的。你试过查询吗?它能为您提供帮助吗? –

+0

你正在做的是为你的视觉效益,因为它没有做任何改变他写的结果。它就像包装“(一个t2.id = t1.id)”一样的条款。它不会帮助dbengine,它以他的风格帮助程序员。他的问题是没有匹配,并且意识到他的确做了许多愚蠢的问题......他们不会回来并发表意见。顺便说一句,我没有downvote你我不这样做:>所以也许我会upvote你! – Drew

0

看起来,您的查询是可以的,但是当您使用WHERE子句时,您会限制结果,因此可能没有要显示的记录,特别是当您使用LIMIT开始偏移量和结果数时。

+0

这不是特别因为限制0,200。这是因为没有什么id 643 – Drew

+0

我不知道有关限制0,200。如果是的话,那么你提到的是真的。谢谢 – Amir

+0

伟大的分页 – Drew

0

您的查询结果是OK,但是没有记录可以满足您的where部分。去你的数据库并用你的标准创建一些新的行。