mysql - 如何在MySQL中的多个参数表中进行搜索?

标签 mysql

因此有一个与“报价”相关的参数表。参数表如下所示:

  • offer_id
  • 参数名称
  • 参数值

表格条目如下所示:

offer_id | parameter_name | parameter_value

1 | price | 100

1 | width | 150

1 | height | 200

1 | place | left

1 | place | right

2 | price | 300

2 | width | 150

2 | height | 200

现在我想使用 MySQL 查询在此表中执行搜索,其中

  • 价格大于80且小于120
  • 宽度等于到 150
  • 高度等于200
  • 地点

预期结果:

  • offer_id = 1

MySQL 查询是什么样的?

非常感谢。

最佳答案

类似这样的:-

SELECT *
FROM offers a
INNER JOIN offers b ON a.offerid = b.offerid
INNER JOIN offers c ON b.offerid = c.offerid
INNER JOIN offers d ON c.offerid = d.offerid
WHERE a.parameter_name = 'price'
AND b.parameter_name = 'width'
AND c.parameter_name = 'height'
AND d.parameter_name = 'place'
AND a.parameter_value BETWEEN 80 AND 120
AND b.parameter_value = '150'
AND c.parameter_value = '200'
AND d.parameter_value IN ('left','right')

请注意,这有时会返回多行(即 id 1 会返回多次)。如果需要,您可以使用 DISTINCT 删除它。取决于如何使用数据。

关于mysql - 如何在MySQL中的多个参数表中进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904536/

相关文章:

mysql - 有没有可以为您生成 SQL 查询的 MySQL 工具?

mysql - 如何确定上次更改 InnoDB 表的时间?

php - 在 foreach 循环中只使用一次函数

更新 xampp 1.8.3-4 后,php mysql 查询未完成

c# - 在表单之间传递 MySql DB 数据

mysql 子查询错误 [21000][1241] 操作数应包含 1 列

php - 使用单个变量查找表行,其中表列是数组

python - 执行此操作以对抗多个 xpath 选择器的正确方法是什么?

android - 使用 ksoap2 将加密密码从 android 传递到 Web 服务到 mysql 数据库

php - 在条件 Mysql 中使用时别名变量不起作用