MYSQL:如何检查字符串是否包含同一行中的值

时间:2013-05-23 11:41:43

标签: mysql

我想检查数据库的某个单元格中的字符串是否是同一行的另一个单元格中字符串的一部分。

以下示例使其更加清晰。让我们说我的桌子看起来像这样:

+---------+-----------------+
|  Name   |     Couple      |
+---------+-----------------+
| Mark    | Mark & Thomas   |
| Chris   | Thomas & Logan  |
| Patrick | Logan & Patrick |
| Thomas  | Chris & Mark    |
| Logan   | Patrick & Chris |
+---------+-----------------+

然后我的查询结果必须是这样的:

+---------+-----------------+
|  Name   |     Couple      |
+---------+-----------------+
| Mark    | Mark & Thomas   |
| Patrick | Logan & Patrick |
+---------+-----------------+

因为Mark和Patrick是情侣字段中字符串的一部分。

我尝试了一下,但我认为这不是正确的方法:

Select * from table where Couple like %Name%

感谢您的回答!

2 个答案:

答案 0 :(得分:6)

您的语法很接近,您可以使用:

Select name, couple
from yt 
where Couple like concat('%', Name, '%');

请参阅SQL Fiddle with Demo

答案 1 :(得分:2)

认为您的列方向错误,并且您需要在比较的字符串中使用通配符。

可能: -

SELECT * FROM table WHERE Couple LIKE CONCAT('%', Name, '%')