1

我浏览了整个网络,也浏览了 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

我想要做的是从该表中选择所有在(so AND ) 中drawer或上的项目,然后按例如位置升序和数量降序对它们进行排序。shelfdrawershelf

所以我所拥有的(在整个网络上搜索之后)是以下代码,这是唯一不返回错误的代码,但它也不返回任何项目:

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

我哪里错了?任何反馈将不胜感激!

通常问题涉及如何从多个表中选择值然后将它们连接起来。但是,我只需要一张表中的值;然而,这些价值观需要回应它们共享的特定多重价值观。

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

虽然只有两个项目,我可能会自己选择第一个,3个或更多,我可能会使用 in()

附加信息:您没有返回任何记录的原因是因为您使用AND的是您的状况。请记住,一行中的每一列都有一个且只有一个值。

于 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 回答