2013-06-01 107 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