2015-10-04 51 views
1

我必须打印不以元音开始和结尾的名称列表。 我输入下面的查询:SQL-模式匹配无输出

SELECT DISTINCT NAME 
FROM STUDENT 
WHERE NAME NOT LIKE '[AEIOU]%' 
    AND NAME NOT LIKE '%[aeiou]' 
ORDER BY NAME; 

而且它产生的输出屏幕上没有任何结果。 这里有什么问题?

+0

你能澄清你在你的数据库中哪些数据?你有没有在[documentation:](https://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html)中看到'为了锚定一个模式,以便它必须匹配该模式的开始或结束正在测试的值,在开始处使用“^”或在模式结尾处使用“$”。 –

+0

数据很简单,因为我的练习 –

+0

使用上面的建议仍然给出错误的输出 –

回答

1

使用RLIKE和正则表达式:

SqlFiddleDemo

SELECT DISTINCT NAME 
FROM STUDENT 
WHERE NAME RLIKE '^[^aeouiy].*[^aeouiy]$' 
ORDER BY NAME;