我有这个mysql表结构:
------------------------------------
| item_id | meta_key | meta_value |
------------------------------------
159 category Bungalow
159 location Lagos
159 price 45000
160 category Bungalow
160 location Abuja
160 price 53500
...
350 category Bungalow
350 location Lagos
350 price 32000
我想要做的是根据 meta_key
列选择匹配两个或多个条件的几行。例如,假设我想为位于“拉各斯”的每个“平房”选择 item_id
。我该怎么做呢?
这是我的尝试,但不起作用:
SELECT `item_id` FROM `item_meta`
WHERE
`meta_key` = 'category' AND `meta_value` = 'Bungalow'
AND
`meta_key` = 'location' AND `meta_value` = 'Lagos'
任何帮助将不胜感激。
最佳答案
如果您想查找与这两个条件匹配的记录,这里是一种方法
select `item_id` FROM `item_meta`
where
( `meta_key` = 'category' and `meta_value` = 'Bungalow' )
or
( `meta_key` = 'location' AND `meta_value` = 'Lagos' )
group by `item_id` having count(*)=2
关于MySQL:根据给定列上的多个键选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30977551/