我是mysql新手。
我在stackoverflow上读过this和其他几篇文章。他们都建议使用LIKE,但我还是不能得到正确的结果。我想知道这个问题是不是由包含这些信息的不同行引起的。
假设我有一个这样的talbeCD

artist        album
Prince        Purple Rain
Adam          Prince Charming

我想选择“艺术家”Prince,因为它同时出现在“艺术家”和“相册”中,我已经尝试使用:SELECT artist from CD WHERE album LIKE CONCAT('%', artist, '%')
但它一直返回0结果,我不明白为什么它不起作用,谁能帮我?
编辑:有关“TABLE CD”的详细信息:
artist        album
Prince        Purple Rain
Adam          Prince Charming
James         Apple
Furious       Banana
Beatles       Let It Be
It            Come

它应该会返回artistPrinceIt

最佳答案

这可以帮你,试试这个

SELECT artist FROM yourTable WHERE (SELECT GROUP_CONCAT(album) FROM yourTable) LIKE CONCAT('%',artist,'%');

SQL Fiddle
_CONCAT组
此函数返回一个字符串结果,其中包含来自组(即来自查询结果)的连接的非空值。如果没有非空值,则返回空值。
有关GROUP_CONCAT的更多详细信息,请参见MySQL documentationthis

关于php - 如何比较一列中的属性值与mysql中另一列中的每个人的属性值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40860652/

10-09 00:34