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

标签 mysql

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

下面的例子更清楚。假设我的 table 看起来像这样:

+---------+-----------------+
|  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 是 Couple 字段中字符串的一部分。

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

Select * from table where Couple like %Name%

感谢您的回答!

最佳答案

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

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

参见 SQL Fiddle with Demo

关于MYSQL:如何检查字符串是否包含同一行中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16713012/

相关文章:

java - 如何选择所有具有相同名称的输入插入到Mysql中?

mysql - 是否可以在 UPDATE 的 WHERE 部分使用 Max()

php - 警告 : mysql_result() [function. mysql-result]:无法跳转到 MySQL 结果索引 5 上的第 1 行

MySQL 搜索 TEXT 字段以匹配文本,用于多行绝对

mysql - 对多列主键使用 IN

mysql - 如何从多个表中高效地获取数据?

php - Wordpress 查询当前用户 ID

mysql - 对象引用未设置为对象的实例

mysql - 为什么 Django 时区设置会影响纪元时间?

javascript - 是否可以使用复选框更改多行值?