2017-07-26 56 views
1

我使用SQlite選擇以某個字母開頭的行,例如:a,b,c。SQL選擇以0-9開頭的所有行

SELECT title FROM dictionary WHERE title LIKE 'a%' ORDER BY title ASC 
SELECT title FROM dictionary WHERE title LIKE 'b%' ORDER BY title ASC 
SELECT title FROM dictionary WHERE title LIKE 'c%' ORDER BY title ASC 
... 

但我也想選擇所有以0-9開頭的標題,類似於'0-9%'。

回答

1

你可以試試這個

SELECT * FROM YourTable WHERE YourColumn正則表達式 '^ [0-9] +'

1

嘗試使用正則表達式

SELECT title FROM dictionary WHERE title regexp '^[0-9]+'; 
3

首先,你可以通過添加OR整理原始LIKE語句:

SELECT title FROM dictionary WHERE title LIKE 'a%' OR name like '%b' OR name like '%c' ORDER BY title ASC. 

要回答你的問題,你可以使用正則表達式,因爲標題是基於字符串的。

WHERE title regexp '^[0-9]+' 

OR

WHERE (LEFT(title, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')) 

您也可以嘗試串和數字功能:

WHERE ISNUMERIC(SUBSTRING(VAL, 1, 1)) 

未測試但會幫助你思考如何讓這個解決

+2

是使用當前函數REGEX太複雜,函數必須調用i具體的方式。 https://sqlite.org/changes.html#version_3_2_2 –

相關問題