gpt4 book ai didi

mysql - SQL 正则表达式以错误的方式工作

转载 作者:行者123 更新时间:2023-11-29 05:14:46 25 4
gpt4 key购买 nike

我正在尝试构建一个 SQL 语句以按以下顺序检索用户名

  • 首先返回以阿拉伯字母开头的名字,然后是英文字母开头的名字,最后是特殊字符开头的名字。
  • 然后按升序对三组中的每一组进行排序。

这是我的代码:

SELECT `name` FROM `user` 
order by case when substring(name,1,1) like 'N[أ-ي]' then 1
when substring(name,1,1) like '[a-zA-Z]' then 2
else 3
end
,name

问题是 case 部分总是返回 3,因此该语句按默认顺序对名称进行排序(首先是特殊字符,然后是英文字母,然后是阿拉伯字母)。我的查询有什么问题?

最佳答案

你需要使用正则表达式,而不是像...(因为你使用正则表达式)

SELECT `name` FROM `user` 
order by case when substring(name,1,1) regexp 'N[أ-ي]' then 1
when substring(name,1,1) regexp '[a-zA-Z]' then 2
else 3
end
,name

引用:MySQL CASE statement and REGEXP

关于mysql - SQL 正则表达式以错误的方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34582700/

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