我需要提取结果的子集,其中first_name
列的值以标准英文字母(即 AZ)以外的任何字符开头,例如È
. 我用这个把头撞在砖墙上 - 例如,这就是我能够获得所有以字母开头的记录的方式A
:
@results = User.where("first_name LIKE ?", "A%").order("first_name ASC")
任何帮助都会很棒。
编辑:我正在使用 PostgreSQL 数据库。
我需要提取结果的子集,其中first_name
列的值以标准英文字母(即 AZ)以外的任何字符开头,例如È
. 我用这个把头撞在砖墙上 - 例如,这就是我能够获得所有以字母开头的记录的方式A
:
@results = User.where("first_name LIKE ?", "A%").order("first_name ASC")
任何帮助都会很棒。
编辑:我正在使用 PostgreSQL 数据库。
您可以使用~
运算符来匹配正则表达式。~
用于匹配case sensitive
数据。因此,在您的情况下,first_name ~ '^[^A-Z]'
将给出who不以. 要匹配,您需要使用.users
first_name
A-Z
case insensitive
~*
@results = User.where("first_name ~ ?", "^[^A-Z]").order("first_name ASC")
或者
您还可以使用!~
which 给出不匹配的结果(即)first_name !~ ^[A-Z]
等同于first_name ~ ^[^A-Z]
. 为了匹配case insensitive
使用!~*
。
@results = User.where("first_name !~ ?", "^[A-Z]").order("first_name ASC")
有关更多信息,请参阅文档