http://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial#All_the_vowels
赤道几内亚和多米尼加共和国拥有名称中的所有元音(e e o o u)。他们不算数,因为他们名字中有多个单词。
找到包含所有元音且名称中没有空格的国家/地区。 您可以使用短语名称NOT LIKE'%a%'从结果中排除字符。
显示的查询错过了巴哈马和白俄罗斯等国家,因为它们至少包含一个' a'
我认为我可以通过更多蛮力方法来嵌套许多OR语句来做到这一点,但这不起作用,而且我不确定如何排除空间出现。
答案 0 :(得分:10)
您想要单词中所有的元音,因此您需要使用AND
,而不是OR
。
此外,要从回复中排除某些内容,您可以使用NOT LIKE
。除了所有元音条件之外,此排除条件也会计算,因此它也需要与AND链接。
如果您无法自行解决,请将光标移到此块上以查看有效的解决方案:
SELECT名称 来自世界 名称喜欢'%A%' 和名字一样'%E%' 和名字一样'%I%' 和名字一样'%O%' 和名字一样'%U%' 并且名字不喜欢' %%'
(选中this answer's sourcecode以获取格式正确的解决方案)
答案 1 :(得分:1)
如何排除空间
AND NOT LIKE '% %'
答案 2 :(得分:1)
SELECT name FROM TABLE_NAME
WHERE name LIKE '%a%' AND
name LIKE '%e%' AND
name LIKE '%i%' AND
name LIKE '%o%' AND
name LIKE '%u%' AND
name NOT LIKE '% %'
答案 3 :(得分:0)
SELECT name FROM world
WHERE name LIKE '%a%'
AND name LIKE '%e%'
AND name LIKE '%i%'
AND name LIKE '%o%'
AND name LIKE '%u%'
AND name NOT LIKE '% %'
答案 4 :(得分:-1)
这是一个可行的解决方案:
SELECT name
FROM world
WHERE name LIKE '%A%'
AND name LIKE '%E%'
AND name LIKE '%I%'
AND name LIKE '%O%'
AND name LIKE '%U%'
AND name NOT LIKE '% %';
我们包含所有元音,并排除带有空格的名称,这意味着我们不希望有两个单词的国家/地区