编写一个MySQL查询,选择其姓名中包含所有元音的国家/地区

时间:2017-08-31 10:00:15

标签: mysql

我有一个名为world的表,我应该选择其名称之间没有空格的国家/地区的名称,该名称包含所有英文字母的元音。我尝试了这个,但它不起作用:

select name from world where name not like '% %' and name like '%a%e%i%o%u%'

我无法在此提供表格结构和内容,因为我无法访问整个表格的内容。基本上我想知道我必须使用的正则表达式。

答案的一个例子是:'莫桑比克'

3 个答案:

答案 0 :(得分:3)

像这样使用CONTAINS(column, string)

SELECT name FROM world
WHERE
NOT CONTAINS(name, " ")
AND CONTAINS(name, "a")
AND CONTAINS(name, "e")
AND CONTAINS(name, "i")
AND CONTAINS(name, "o")
AND CONTAINS(name, "u");

或使用LIKE声明:

SELECT name FROM world
WHERE
name NOT LIKE "% %" AND
name LIKE "%a%" AND
name LIKE "%e%" AND
name LIKE "%i%" AND
name LIKE "%o%" AND
name LIKE "%u%";

答案 1 :(得分:2)

一种简单的方法,虽然可能不是最有效的方法:

select name from world where name not like '% %' and name like '%a%' and name like '%e%' and name like '%i%' and name like '%o%' and name like '%u%'

不计算大写字母。

答案 2 :(得分:2)

您可以使用 REGEXP 归档所需的结果。下面的正则表达式模式意味着名称必须包含所有英文字母的元音。

SELECT name 
FROM world
WHERE name REGEXP '[aeiou].*[aeiou].*[aeiou].*[aeiou].*[aeiou]'