2011-07-29 24 views
0

データベーステーブルから複数の行を表示する方法を知りたいですか? 1つの方法しかわかりませんが、1行しか表示できません。コードは次のとおりです。データベースから複数の行を表示する方法は?

('SELECT * FROM cats WHERE cat_id="32" ORDER BY sorting') 

私は、どこにIDを表示する必要がありますか?悪い例

('SELECT * FROM cats WHERE cat_id="32, 33, 34, 37" ORDER BY sorting') 

どうすればよいですか?

+0

私はあなたの "cat_id"フィールドがいくつかのバリエーションの整数であると仮定していたので、これまでに尋ねたとは思わなかった。あなたの質問に戻ってきたので、cat_id値を引用符で囲んだことに気付きました。あなたのcat_idが文字列の場合は、私が与えた例の引用を必ず使用してください。 –

答えて

6
SELECT * FROM cats WHERE cat_id IN (32, 33, 35, 37) ORDER BY sorting 
1
SELECT * 
FROM cats 
WHERE cat_id IN ("32", "33", "34", "37") 
ORDER BY sorting 
0

クリストファーホックは、しかし、あなたはまた、あなたが示されてきたシンプルなユースケースに完璧に動作しますコンラッドとクリストファーから

WHERE cat_id = 32 
     OR cat_id = 33 
     OR cat_id = 35 
     OR cat_id = 37 
0

例を書くことができます注意してください最良の答えを持っています。 ORまたはINを使用すると、オプティマイザが一時テーブルを作成することがあります。より複雑な照会を作成していて、IN節で使用されているフィールドが索引ではない場合は、必ずEXPLAINコマンドを実行してください。

EXPLAIN [you query here]; 

このシナリオを特定します。クエリを最適化するために、いくつかのケースでUNIONを使用しなければなりませんでした。

関連する問題