比方说我那里有两列的表:名和情绪。一行包含人名和他们的心情,如果他们有多重情绪,那么多行存储在数据库中。如何使用union语句选择mysql数据,其中数据与每个select语句匹配,即将AND运算符与UNION结合起来?
例如,在数据库是约翰,谁是幸福,兴奋,骄傲。
这被表示为
John Happy
John Excited
John Proud
我想要做的就是选择被满足基于几个情绪名称。类同上联:
SELECT name WHERE mood=Happy
UNION
SELECT name WHERE mood=Excited
UNION
SELECT name WHERE mood=Proud
但是使用上述联盟会导致:
John
John
John
联盟都将导致约翰一个单一的结果,但它也将选择任何名字,仅匹配一个的查询。
我能想到这将需要每一个人mysql_result资源(我使用PHP)的几个算法,并查找匹配的结果,但我想知道的是MySQL的是否已经促进了这一点。
我意识到上述是一个相当笼统的概括,不用说我的实际程序更复杂,我已经为这个问题稍微弄虚作假,请不要犹豫提问。
谢谢,我用了第一个,它的工作非常完美,我有一个CRON工作,每天晚上检查重复,所以不用担心。 至于更新,它不会返回任何结果,HAVING应该有什么区别? 非常感谢。 – Sam
与HAVING的逻辑几乎相同,不知道是否有任何性能差异。 –