2013-06-01 63 views
0

我想选择其标题不以a-z或0-9字符开头的记录。要做到这一点在mysql中选择非字母记录

一种方法是:

SELECT * FROM table WHERE title NOT LIKE 'a%' AND... title NOT LIKE 'z%' .... 

有没有更好的方式来做到这一点?

回答

6

您可以使用正则表达式:

select * 
from table 
where title regexp '^[^a-z0-9]' 

顺便说一句,第一^字符串的开头匹配。第二种是在[]之间的模式中的字符的否定。

2

另一种选择:

SELECT * 
FROM table 
WHERE (LEFT(table, 1) NOT BETWEEN 'a' AND 'z') 
    AND (LEFT(table, 1) NOT BETWEEN '0' and '1') 
+0

+1有趣的解决方案,但也有一些错别字。它应该是LEFT(fieldName,1)以及BETWEEN'0'和'9'。 – ankurtr