gpt4 book ai didi

mysql - SQL 查询以计算具有中间名的用户

转载 作者:行者123 更新时间:2023-11-30 21:32:18 25 4
gpt4 key购买 nike

我有一个名为“姓名”的列,我在其中存储用户的全名(例如:“John Wood”或“John Michael Wood”)。我有一个查询,根据用户名检查该用户在数据库中是否存在,例如:

SELECT * FROM users WHERE name LIKE var.name%

其中“var.name”是用户在数据库中查找其他用户的输入。如果要查找的用户名为“John Wood”,一切正常,但如果用户有一个中间名“John Michael Wood”,如果字符串“John Wood”是搜索的关键。

当搜索键为“John Wood”时,如何修改查询以查找用户“John Michael Wood”?换句话说,如果用户有中间名,即使他们的中间名不包含在搜索字符串中,也应该在数据库中找到他们。

最佳答案

您可以使用正则表达式来解决此问题,将名字和姓氏之间的空格替换为搜索空格后跟可选的中间名(一组字母字符)和另一个空格的内容。例如:

SELECT *
FROM users
WHERE name REGEXP CONCAT('^', REPLACE('John Wood', ' ', ' ([[:alpha:]]+ )?'), '$')

Demo on dbfiddle

create table users (id int auto_increment primary key,
name varchar(40));
insert into users (name) values
('John Wood'),
('Johnny Wood'),
('John Woodman'),
('John Michael Wood'),
('Michael Wood'),
('John Smith');

输出:

id  name
1 John Wood
4 John Michael Wood

关于mysql - SQL 查询以计算具有中间名的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573118/

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