【发布时间】:2012-01-21 10:38:05
【问题描述】:
假设我有一个只有两列的表:name 和 mood。一行包含一个人的姓名和他们的心情,如果他们有多种心情,则在数据库中存储多行。
例如,数据库中有约翰,他快乐、兴奋、自豪。
这表示为
John Happy
John Excited
John Proud
我想做的是根据遇到的几种情绪来选择名称。类似于 UNION:
SELECT name WHERE mood=Happy
UNION
SELECT name WHERE mood=Excited
UNION
SELECT name WHERE mood=Proud
但是使用上述联合会导致:
John
John
John
Union all 将产生 John 的一个结果,但它也会选择仅匹配其中一个查询的任何名称。
我可以想出一些算法来获取每个单独的 mysql_result 资源(我正在使用 PHP),并寻找匹配的结果,但我想知道 MySQL 是否已经促进了这一点。
我意识到上面是一个相当模糊的概括,不用说我的实际程序要复杂得多,我已经为这个问题把它简化了一点,请不要犹豫提问。
【问题讨论】:
标签: php mysql select union advanced-search