gpt4 book ai didi

mysql - sql检查列是否是另一列的子字符串

转载 作者:行者123 更新时间:2023-11-29 04:06:08 24 4
gpt4 key购买 nike

我正在尝试检查一列子字符串是否在另一列中

表1

FullName              
Johns Doue
Johnny
Betty Smith, Chair

表2

Name       
John

用table2看是不是table1的子串。它应该返回 Johns Doue 和 Johnny。

SELECT * FROM table1.FullName AS table1      
JOIN table2.Name AS table2
WHERE table2.Name LIKE SUBSTRING(table1.FullName, 0, 10);

这是返回正在比较的空值。我不确定我做错了什么。从我的逻辑来看,它似乎是从 table2.name 中获取结果并与 table1.FullName 的子字符串进行比较。

最佳答案

您需要在 LIKE 模式中放置通配符,以使其查找子字符串。您似乎还在 SELECT 语法中混淆了表名和列名。

SELECT *
FROM table1 AS t1
JOIN table2 AS t2
WHERE t1.FullName LIKE CONCAT('%', t2.Name, '%')

您也可以使用 LOCATE 而不是 LIKE

SELECT *
FROM table1 AS t1
JOIN table2 AS t2
WHERE LOCATE(t2.Name, t1.FullName) > 0

DEMO

关于mysql - sql检查列是否是另一列的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38234590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com