MySQL SELECT行响应其中一列中的特定MULTIPLE值

时间:2013-03-01 18:17:38

标签: mysql select multiple-value

我已经浏览了整个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

我想要做的是从此表格中选择drawershelf上的所有项目(所以drawershelf)然后订购例如,它们首先是位置上升,第二是数量下降。

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

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

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

通常问题是如何从多个表中选择值然后加入它们。但是,我只需要一张表中的值;但是,这些值需要响应它们共享的特定多个值。

2 个答案:

答案 0 :(得分: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个或更多,我可能会使用()

其他信息:您没有收到任何记录的原因是您在条件中使用AND。请记住,一行中每列都只有一个值。

答案 1 :(得分: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