gpt4 book ai didi

mysql - 使用撇号、连字符、双大写的 SQL 名称搜索

转载 作者:行者123 更新时间:2023-11-30 23:44:57 26 4
gpt4 key购买 nike

有一个带字母的搜索过滤器。

enter image description here

如果我单击“D”然后显示所有艺术家的名字,我希望过滤器起作用,例如:

David McDonaldAlice DuncanDaniel O'NeillBeth Douglas-Bain

The artist table has a column 'name' which contains first, middle and surname, including apostrophes, hyphens, and double uppercase.

I tried

SELECT * FROM `artist` WHERE `name` REGEXP BINARY 'D[a-z]'

然而,这并没有正常工作。

我只能使用来自“WHERE 子句”的查询,所以我不能使用来自 SELECT 的查询。

一些问题示例是:

  • 点击“O”但 O'Neill 没有出现
  • 点击'B'然后Douglas-Bain出现,应该是'D',McDonald也有同样的问题。

McDonald、O'neill、Douglas-Bain 的姓氏使查询无法正常工作,因为 McDonald 和 Douglas-Bain 有两个大写字母,所以当我按“D”时它会出现。 O'Neill 有一个撇号和双大写字母,我无法理解。

如果有 SQL 专家可以帮助我,我将不胜感激。

最佳答案

试试这个

'(^|[^A-Za-z''])lettervalue'

其中lettervalue是选中的字母

在以下名称列表上进行了测试,并在所有名称上都取得了成功。

Daniel Grass
Daniel House
Ronald O'House
Craig McHouse
Tina Dreamer
Orion Fantastic

根据需要,

'(^|[^A-Za-z''])O' 拉出“Ronald O'House”和“Orion Fantastic”,

'(^|[^A-Za-z''])H' 取出“Daniel House”(但忽略 Craig McHouse)

'(^|[^A-Za-z''])M' 拉出“Craig McHouse”

关于mysql - 使用撇号、连字符、双大写的 SQL 名称搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43112458/

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