2017-08-01 78 views
0

我们有一个数据库,其表格的值是从另一个系统导入的,我想通过查找最小元音来查询最大元音 是否有MySQL正则表达式来执行这个 ?MySQL - 如何通过元音选择数据范围

select name from user where name REGEXP '^[a,e,i,o,u]${2,5}'; 

我试过这个查询但我失败了。

+0

需要最低可验证例如数据显示样品,应该怎么搭配,什么不应该。 – gview

回答

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

+0

这对我很好。谢谢。!我能够很容易地修改这个为我的目的。 – ritwik

+0

@ Wanderer我需要你的帮助,我有一个类似的问题,数字字符。我想获得最小和最大范围的唯一字符值。我认为这可以通过一个例子更好地解释。示例 - 表格的列是用户名,如abc123,12def,erogan44e等。我希望仅选择最小值到最大值之间的字符长度。 是否可以不使用程序?我们应该用正则表达式吗? – ritwik

+0

@ritwik:'abc123'输出的方法应该是'3'吗? – Wanderer