gpt4 book ai didi

MySQL 查询模式匹配

转载 作者:行者123 更新时间:2023-11-29 08:22:45 27 4
gpt4 key购买 nike

首先,这是我正在处理的表格的简化版本:

╔═══════╦═══════════╦══════════╦═══════════╗
║ ID ║ FIRSTNAME ║ LASTNAME ║ COMPANYID ║
╠═══════╬═══════════╬══════════╬═══════════╣
║ 12345 ║ Bob ║ Smith ║ 3 ║
║ 13826 ║ Bob ║ Smith.Mr ║ 3 ║
║ 16326 ║ Bob ║ Smith Mr ║ 3 ║
║ 16382 ║ Dr.Bob ║ Smith ║ 3 ║
║ 18372 ║ Kim ║ Johnson ║ 3 ║
╚═══════╩═══════════╩══════════╩═══════════╝

仅给出 id 12345,我应该能够根据从 12345 获得的名称及其 companyID 获取所有记录,因此基本上来自 Company 3 的 Bob Smith 的所有记录。

我不知道如何处理这个查询,我需要一种方法来删除他的名字和姓氏中的任何标题、空格或点。我假设我会将名字与姓氏连接起来并运行一个函数来删除我必须删除的内容:

先生、博士、Jr、Sr 等...

最终成为鲍史密斯。我需要对与 id 12345 关联的名称执行此操作,并且也在 WHERE 子句中执行此操作,对吧?这将是为了比较名称。

我正在尝试使此查询尽可能快速高效,我应该使用子 SELECT 吗?我应该创建一个FUNCTION吗?不知道如何在 .net 中执行此操作。

任何想法将不胜感激。

编辑:应该提到客户也可能向我发送 ID 13826,这是给 Bob Smith 的。先生和我仍然需要从中获取 Bob Smith ID 12345,所以我想我会肯定必须删除标题等...

最佳答案

SELECT  b.*
FROM tableName a
INNER JOIN tableName b
ON a.companyID = b.companyID
WHERE a.id = 12345 AND
b.firstName LIKE CONCAT('%', a.firstName, '%') AND
b.lastName LIKE CONCAT('%', a.lastName, '%')

输出

╔═══════╦═══════════╦══════════╦═══════════╗
║ ID ║ FIRSTNAME ║ LASTNAME ║ COMPANYID ║
╠═══════╬═══════════╬══════════╬═══════════╣
║ 12345 ║ Bob ║ Smith ║ 3 ║
║ 13826 ║ Bob ║ Smith.Mr ║ 3 ║
║ 16382 ║ Dr.Bob ║ Smith ║ 3 ║
╚═══════╩═══════════╩══════════╩═══════════╝

关于MySQL 查询模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18897111/

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