1

私はWeb全体、およびStackOverflowでも調べて、多くの同様のトピックを見つけましたが、特に私のニーズに答えるものはありません。だから私はこれをそこに送ります、それが機能するために私が欠けているいくつかの小さなものがあることを知っています。

次の表を想像してみましょう。

      location  |   title   | description | quantity 
    ============|===========|=============|==========
      shelf     |   apple   |    red      |    2
      drawer    |   banana  |    yellow   |    4
      shelf     |   kiwi    |    green    |    2
      cupboard  |   lemon   |    yellow   |    1
      fridge    |   melon   |    orange   |    3
      drawer    |   peach   |    orange   |    1

私がやりたいのは、このテーブルから、drawerまたはshelf(so drawerAND shelf)にあるすべてのアイテムを選択し、たとえば、最初に場所の昇順、次に数量の降順で並べ替えることです。

したがって、(Web全体を検索した後)私が持っているのは次のコードです。これはエラーを返さない唯一のコードですが、アイテムも返しません。

SELECT * FROM items WHERE location = 'shelf' AND location = 'drawer' ORDER BY location ASC, quantity DESC

どこが間違っているのですか?フィードバックをいただければ幸いです。

通常、質問は、複数のテーブルから値を選択してそれらを結合する方法に向けられます。ただし、必要なのは1つのテーブルの値だけです。ただし、これらの値は、共有する特定の複数の値に応答する必要があります。

4

2 に答える 2

5
SELECT * FROM items WHERE location = 'shelf' or location = 'drawer'
ORDER BY location ASC, quantity DESC

また

SELECT * FROM items WHERE location in ('shelf','drawer')
ORDER BY location ASC, quantity DESC

たった2つのアイテムについては、おそらく最初の自分で3つ以上を使用しますが、in()を使用する可能性があります。

追加情報:レコードが返されない理由はAND、自分の状態で使用しているためです。行のすべての列に1つだけの値があることに注意してください。

于 2013-03-01T18:19:03.317 に答える
2

これを使ってみてください.....

phpで使用したい場合は、私のコードを変更して、自分のコードに置き換えることができます。私がこれを開発していたとき、私は同様の問題を抱えていました:

$data = mysql_query("SELECT * FROM cancer WHERE Age ='1'OR Age = '2' OR Age = '3'OR Age = '4'OR Age = '5'OR Age = '6'OR Age = '7'OR Age = '8'OR Age = '9'") 

SQLの場合は、次を使用します。

SELECT * FROM items WHERE location = 'shelf' or location = 'drawer'
ORDER BY location ASC, quantity DESC
于 2013-03-01T18:27:59.473 に答える