1

我开始学习php和我的sql。

我不知道这段代码有什么问题。

$result = mysql_query("SELECT * FROM tbl where field1 (1,2,3)");

我收到这个错误。

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in test.php on line 52

当我用这个替换那个特定的行时

$result = mysql_query("SELECT * FROM tbl");

它工作正常,但它返回所有行。

我正在尝试使用 mysql 中的 where 命令过滤行显示。

什么是正确的语法?

谢谢

4

3 回答 3

4

你需要一个IN子句:

$result = mysql_query("SELECT * FROM tbl where field1 IN (1,2,3)");

此查询类似于:

SELECT * FROM tbl where field1=1 OR field1=2 OR field1=3

另外,请记住,它mysql_query已被弃用,不鼓励使用。

于 2012-06-12T22:07:44.547 回答
0

首先.. 停止使用 mysql 扩展,因为它已被弃用...

除此之外,您还可以执行以下操作:

$result = mysqli_query("SELECT * FROM tbl WHERE field IN (1,2,3)");

这里还有一些不完全适合你的例子......

$result = mysqli_query("SELECT * FROM tbl WHERE date BETWEEN "2012-06-01 00:00:00" AND "2012-06-12 23:59:59");

http://dev.mysql.com/doc/refman/5.0/en/where-optimizations.html将为您提供有关 WHERE 子句本身以及如何正确利用和优化它的一些信息。

希望能帮助到你。

于 2012-06-12T22:11:25.353 回答
0

尝试这个:

$result = mysql_query("SELECT * FROM tbl where field1 IN (1,2,3)"); 
于 2012-06-12T22:08:16.620 回答