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

これを試して:

$result = mysql_query("SELECT * FROM tbl where field1 IN (1,2,3)"); 
于 2012-06-12T22:08:16.620 に答える
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 に答える