mysql - 如何在整个列上使用 LIKE 进行选择,但不需要完全匹配?

标签 mysql

我正在尝试使用整个列而不是特定字符或通配符对两个表进行部分匹配 SELECT

我有两个表(T1、T2)和两个列(T1.C1、T2.C2)。当 C1 和 C2 的格式完全匹配时,我能够在 SELECT 上获得返回值,但是,C2 将包含来自 C1 的文本字符串的文本串在一起。

因此,这里有两个表中格式化字符的几个示例:

T1.C1

  • 母鹿,约翰
  • 史密斯,史蒂夫
  • 罗伯茨,莎莉

T2.C2

  • #Doe、John、Thekid、Billy、随机组 A
  • 随机 B 组,Smith,Steve# Jones,Allie
  • #Roberts, Sally!Random GroupC, etc.

当在 T2.C2 中找到来自 T1.C1 的 'Doe, John' 时,我想要做的是匹配,即使在该表中它的格式为 '#Doe, John, Thekid, Billy, Random Group A '

这是我用来获得精确匹配的方法...

SELECT *
FROM T1, T2
WHERE T1.C1 LIKE CONCAT('%', T2.C2 , '%');

最佳答案

关于

SELECT *
FROM T1, T2
WHERE T2.C2 LIKE CONCAT('%', T1.C1 , '%');

? 即,T2.C2 包含 T1.C1 中的字符串。

关于mysql - 如何在整个列上使用 LIKE 进行选择,但不需要完全匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439891/

相关文章:

mysql - 查询结果为所需格式(MySQL)

php - MySqli Multi_Query 仅执行第一条语句

mysql - 如何在不指定数据类型的情况下修改 MySQL 列以允许 NULL?

php - 在 DateTime 中添加 1 周以创建到期日期时间

mysql - 自动备份加密在 zip 文件中

mysql 在cast()时按大小写顺序

mysql - 这些 sql 连接之间的差异(相同的结果,相同的执行计划)

php - PHP中如何隐藏多个链接的get变量

php - 如何在mysql数据库中插入像 "Pyrénées, France'”这样的字符串?

mysql - 查找其他表中不存在的记录