我们有一个数据库,其表的值是从另一个系统导入的,我想通过查找最小元音到最大元音来开发查询 是否有MySQL正则表达式来执行此操作?
select name from user where name REGEXP '^[a,e,i,o,u]${2,5}';
我试过这个查询,但我失败了。
答案 0 :(得分:1)
通过获取整个字符串长度和字符串长度的差异来查找每个元音字符的出现,而不是该元音字符。
<强>查询强>
select `name`, (
length(`name`) - length(replace(lower(`name`), 'a', '')) +
length(`name`) - length(replace(lower(`name`), 'e', '')) +
length(`name`) - length(replace(lower(`name`), 'i', '')) +
length(`name`) - length(replace(lower(`name`), 'o', '')) +
length(`name`) - length(replace(lower(`name`), 'u', ''))
) as `vowel_count`
from `your_table_name`
order by 2;
<强> Find demo here 强>