SQL选择以0-9之间的数字开头的所有行

时间:2017-07-26 06:50:32

标签: sql sqlite

我使用SQlite选择以某个字母开头的行,例如:a,b,c。

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开头的标题,就像LIKE'0-9%'。

3 个答案:

答案 0 :(得分: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)) 

未经过测试但会帮助您考虑如何解决这个问题

答案 1 :(得分:1)

你可以试试这个

SELECT * FROM YourTable WHERE YourColumn regexp'^ [0-9] +'

答案 2 :(得分:1)

尝试使用regexp

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