gpt4 book ai didi

mysql - 如何使用通配符和空格从多个 MySQL 列中进行选择?

转载 作者:行者123 更新时间:2023-11-29 12:28:57 27 4
gpt4 key购买 nike

我有一个预输入选择框,用于在数据库中查找用户。经常有许多用户具有相同的名字和不同的姓氏。搜索用户的人通常会输入:“John doe”。

这样做的问题是,预先输入将开始获取所有 John 用户,但在输入空格时不返回任何结果。“为什么”发生这种情况是显而易见的,用户的名字被修剪,任何带有空格的内容都不会匹配~更不用说后面还有另一个字符,名字和姓氏存储在单独的列中。

这是目前的查询:

SELECT Entities.* FROM `Entities` 
WHERE `Entities`.`first_name` LIKE '%john doe%'
OR `Entities`.`last_name` LIKE '%john doe %'

如何重写此查询以使结果为:

  • 名字为 john 的所有用户
  • 忽略任意数量的空格
  • 并且姓氏是 doe

当用户在搜索控件中输入“john doe”时

(请记住,搜索控件是一个文本类型字段)

最佳答案

如果您想要像 john 这样的名字和像 doe 这样的姓氏,请尝试以下操作:

where concat(Entities`.`first_name`, ' ', `Entities`.`last_name`) like '%john% doe%'

如果您想根据搜索字符串执行此操作,请执行以下操作:

where concat(`Entities`.`first_name`, ' ', `Entities`.`last_name`) like
concat('%', replace('john doe', ' ', '%'), '%')

或者,使用全文搜索。

关于mysql - 如何使用通配符和空格从多个 MySQL 列中进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893121/

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