我正在使用一组SQL LIKE条件来遍历字母并列出以适当字母开头的所有项目,例如,获取标题以字母“ A”开头的所有书籍:
SELECT * FROM books WHERE title ILIKE "A%"
字母很好,但是如何列出以任何数字开头的所有项目?对于它值得的是在Postgres DB上。
我正在使用一组SQL LIKE条件来遍历字母并列出以适当字母开头的所有项目,例如,获取标题以字母“ A”开头的所有书籍:
SELECT * FROM books WHERE title ILIKE "A%"
字母很好,但是如何列出以任何数字开头的所有项目?对于它值得的是在Postgres DB上。
Answers:
这将(通过正则表达式)选择每本以数字开头的书名的书,这就是您想要的吗?
SELECT * FROM books WHERE title ~ '^[0-9]'
如果您想要以特定数字开头的整数,则可以使用:
SELECT * FROM books WHERE CAST(price AS TEXT) LIKE '123%'
或使用(如果您所有的数字都有相同的数字(那么约束将很有用))
SELECT * FROM books WHERE price BETWEEN 123000 AND 123999;
PostgreSQL支持正则表达式匹配。
因此,您的示例看起来像
SELECT * FROM books WHERE title ~ '^\d+ ?'
这将匹配以一个或多个数字开头的标题以及一个可选的空格