我尝试构建一个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
问题是案例部分总是返回3,因此语句按默认顺序排序名称(首先是特殊字符,然后是英文字母,然后是阿拉伯字母)。我的查询中有什么问题?
答案 0 :(得分: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