我正在尝试根据特定数字进行查询,在此阶段我只需要以逗号分隔值硬编码到页面中。
2312,2431,2439,2440,2442,....
但我不能在两者之间使用,因为两者之间的数字可能不相关
那么我该如何查询这种类型?
$sql= "SELECT * FROM table
WHERE pc=2431 OR pc=2439 OR
pc=2440 OR pc=2442 OR
pc=2443 OR pc=2444 OR
pc=2445 OR pc=2446 OR
pc=2312 AND v=1
ORDER BY id DESC
LIMIT $offset, $rowsperpage";
我尝试了这种方式,但必须有更好的方法。
提前致谢
答案 0 :(得分:1)
确实有......您可以使用IN
运算符,以便查询变为:
SELECT *
FROM table
WHERE pc IN (2431,2439,2440,2442,2443,2444,2445,2446,2312)
AND v=1
ORDER BY id DESC
LIMIT $offset, $rowsperpage
简单:o)
有关详细信息,请查看http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#function_in
上的MySQL文档答案 1 :(得分:0)
我建议对其他答案稍作改进:
$ pcs = array(2431,2439,2440,2442,2443,2444,2445,2446,2312);
"SELECT *
FROM table
WHERE pc IN (" . implode(",", $pcs) . ")
AND v=1
ORDER BY id DESC
LIMIT $offset"
这样,如果以后你的id会发生变化并且你有几个查询使用它们,你将只需要更新一个地方而不是N(其中N是查询数)。如果您在许多不同的文件中使用这些ID,请考虑制作一个常量