0

特定の数値に基づいてクエリを実行しようとしていますが、この段階では、コンマ区切りの値としてページにハードコードするだけで済みます。

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";

私はこれを試してみましたが、もっと良い方法があるはずです。

前もって感謝します

4

2 に答える 2

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のドキュメントを確認してください

于 2012-04-20T08:16:41.383 に答える
0

他の回答を少し改善することをお勧めします。

$個 = 配列(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 はクエリの数) ではなく 1 つの場所だけを更新する必要があります。これらの ID を多くの異なるファイルで使用する場合は、定数を作成することを検討してください。

于 2012-04-20T08:20:10.617 に答える