Mysql 从一列中选择包含值的多行

Mysql 从一列中选择包含值的多行,mysql,sql,database,select,Mysql,Sql,Database,Select,事实上,我的问题与之几乎相同,我想找到MAKE='FORD'和COLOR='SILVER'的汽车的车号,所以在这里它将返回车号1和2 PS:一次可能有多个条件,比如我可以通过MAKE+卡林+颜色、MAKE+卡林等进行搜索 table_cars +----+--------+----------+-----------+ | id | car_id | name | value | +----+--------+----------+-----------+ | 1 | 1

事实上,我的问题与之几乎相同,我想找到MAKE='FORD'和COLOR='SILVER'的汽车的车号,所以在这里它将返回车号1和2

PS:一次可能有多个条件,比如我可以通过MAKE+卡林+颜色、MAKE+卡林等进行搜索

table_cars

+----+--------+----------+-----------+
| id | car_id | name     | value     |
+----+--------+----------+-----------+
| 1  | 1      | MAKE     | FORD      |
| 2  | 1      | CARLINE  | FIESTA    |
| 3  | 1      | COLOR    | SILVER    |
| 4  | 1      | TOPSPEED | 210KM/H   |
| 5  | 2      | MAKE     | FORD      |
| 6  | 2      | CARLINE  | FOCUS     |
| 7  | 2      | COLOR    | SILVER    |
| 8  | 2      | TOPSPEED | 200KM/H   |
| 9  | 3      | MAKE     | HOLDEN    |
| 10 | 3      | CARLINE  | ASTRA     |
| 11 | 3      | COLOR    | WHITE     |
| 12 | 3      | TOPSPEED | 212KM/H   |
+----+--------+----------+-----------+

谢谢大家!

尝试如下所示的自连接:

SELECT distinct car_id
FROM mytable mt1 INNER JOIN mytable mt2
ON   mt1.car_id = mt2.car_id
WHERE mt1.name = 'MAKE'
AND   mt1.value = 'FORD'
AND   mt2.name = 'COLOR'
AND   mt2.value = 'SILVER'

你的问题和你链接的问题有什么不同吗?我标记为重复?这是一个糟糕的数据库模型,因为它没有汽车模型。汽车有品牌、颜色、速度等属性。你的桌子上只有一些“东西”的名称和价值。你为什么叫你的桌子车呢?把它叫做table_something和car_id something,你也可以用它来收藏DVD和洗衣服。@jpw上的那个问题想返回1行,但我想返回更多的那一行row@ThorstenKettner这只是一个从我提出的问题复制过来的例子,我的实际数据库就像你说的,它将包含多种类型的数据。字符串应该是大写的。只有使用区分大小写的排序规则。啊,好的,MySQL中有一些特殊的东西。我不知道。不,所有DB引擎都是这样。
select car_id
from your_table
group by car_id
having sum(name = 'MAKE' and value = 'FORD') > 0
and sum(name = 'COLOR' and value = 'SILVER') > 0