我有一个包含字段title
的表格。我目前按字母查询如下:
Group.where("title like ?", "#{@letter}%")
这适用于a-z
。
我可以传递给@letter
以获取所有不以a-z
开头的行?例如,以“1”或“500”或其他非a-z
字符开头的条目?
答案 0 :(得分:3)
在PostgreSQL中需要regular expression match:
SELECT *
FROM tbl
WHERE title ~ E'^\\w.*';
\ w是[[:alnum:]_]
的{{3}}。请注意,这仅包含数字和下划线_
。
或者:
title ~ E'^[^a-zA-Z].*'
..匹配除a-z
和A-Z
以外的所有字符。
您无法使用LIKE
轻松完成此操作。
答案 1 :(得分:2)
我相信这会奏效:[^ a-z]
我在自己的临时表上测试过,它对我来说很好用:
select * from #test where test like '[^a-z]%'