【发布时间】:2015-04-04 18:57:47
【问题描述】:
我正在使用 php 从 mysql 表中获取结果。我想运行多个条件语句以返回唯一结果列表。假设我有一张关于街道上房屋的表格,我的表格如下所示:
House Number | Attribute | Value
-------------------------------
23 | Colour | White
23 | Stories | 2
24 | Stories | 1
25 | Colour | Blue
注意 23 号房屋出现两次 我如何用 mysql 查询语句返回所有白色且有两层楼的房屋?在这种情况下,它只会返回一个结果 - 23。
我听到你在说什么 - 我为什么不直接将“颜色”和“故事”作为列名。嗯,原因是因为在我的示例中,房子可以有两种不同的颜色:相同属性名称的两个不同值。房子可以有两行,其中属性是颜色,值是白色,另一行是属性也是颜色,但值是紫色。只要房子有一排 colour:white 和一行 stories:2 它就会在查询中返回正数并包含在结果中
现在,一旦解决方案是运行两个不同的查询:一个查询匹配白色房屋并返回一个数组,第二个查询匹配具有两个楼层的房屋并返回一个数组,然后我可以使用 php 来比较两者数组并查看两个数组中出现的条目,将它们拉出并放入最终数组中。但这涉及调用两个 mysql 查询。有没有办法在mysql端合并查询?
【问题讨论】: