案例不敏感的搜索/查询

时间:2011-01-20 21:19:12

标签: sql regex postgresql case-insensitive

有没有人知道如何使用Postgres 7.4进行不区分大小写的搜索/查询?

我在想RegEx,但不知道怎么做,或者有一个函数/标志或者我可以添加查询的东西?

我正在使用PHP来连接和执行查询。

所以我希望匹配地址信息。

示例:

123 main street
123 Main st.
123 Main Street
123 main st
123 Main st
etc...

有什么想法吗?

SELECT address FROM tbl WHERE address LIKE '%123 %ain%'

2 个答案:

答案 0 :(得分:17)

使用ILIKE,例如:

...
WHERE 
    address ILIKE '123 main st%'

Documentation


或者,您可以使用UPPERLOWER,例如:

...
WHERE 
    LOWER(address) LIKE '123 main st%'

答案 1 :(得分:2)

除了ILIKE和lower()方法之外,我还可以看到另外两种可能性:

  1. 使用citext数据类型:http://www.postgresql.org/docs/9.0/static/citext.html
  2. 使用全文搜索 - 这可能是最灵活和最快速的解决方案,虽然开始时要复杂一点。
相关问题