大小写不敏感的搜索/查询

27 浏览
0 Comments

大小写不敏感的搜索/查询

有人知道如何在Postgres 7.4中进行不区分大小写的搜索/查询吗?

我在考虑使用正则表达式,但不确定如何做,或者可能有一个函数/标记之类的东西可以添加到查询中吗?

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

所以我想要匹配地址信息。

例如:

123 main street
123 Main st.
123 Main Street
123 main st
123 Main st
等等...

有什么想法吗?

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

0
0 Comments

大小写不敏感的搜索/查询(Case Insensitive searches/queries)在PostgreSQL 7.4版本中并不支持。这可能会导致在搜索和查询数据时出现问题,因为默认情况下,PostgreSQL区分大小写。

为了解决这个问题,有几种可能的方法可以尝试:

1. 使用citext数据类型。这是PostgreSQL中的一个扩展,它提供了大小写不敏感的字符串比较。你可以将需要进行大小写不敏感比较的字段的数据类型更改为citext。具体的使用方法可以参考PostgreSQL的官方文档:http://www.postgresql.org/docs/9.0/static/citext.html

2. 使用全文搜索(full text search)。全文搜索是一种更灵活和快速的解决方案,虽然在开始使用时可能会稍微复杂一些。你可以使用PostgreSQL的全文搜索功能来进行大小写不敏感的搜索和查询。全文搜索提供了更高级的搜索功能,例如模糊匹配、停用词过滤等。你可以在PostgreSQL官方文档中找到更多关于全文搜索的信息。

在讨论中,还提到了PostgreSQL 7.x版本不支持全文搜索功能。因此,如果你想使用全文搜索来解决大小写不敏感的搜索和查询问题,就需要先升级到至少8.4版本的PostgreSQL。

以上是解决大小写不敏感的搜索/查询问题的几种可能方法。具体使用哪种方法取决于你的需求和环境。如果你的PostgreSQL版本太旧无法支持现有解决方案,那么升级到较新的版本是解决问题的关键。

0
0 Comments

在编写查询时,有时候需要进行大小写不敏感的搜索。在某些情况下,我们可能希望找到与搜索项大小写不完全匹配但内容相似的结果。然而,标准的SQL查询默认是大小写敏感的,这就需要我们采取一些额外的步骤来实现大小写不敏感的搜索。

解决这个问题的方法之一是使用ILIKE操作符。ILIKE操作符是PostgreSQL中的一个特殊操作符,它在执行搜索时忽略大小写。例如,我们可以使用以下查询语句来实现大小写不敏感的搜索:

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

另一种解决方法是使用UPPER或LOWER函数。这些函数可以将文本转换为大写或小写,从而使搜索不再区分大小写。例如,我们可以使用以下查询语句来实现大小写不敏感的搜索:

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

需要注意的是,使用LOWER函数进行搜索时,我们可能需要在address列上添加一个索引,以加速搜索的执行。但是请注意,索引对于包含通配符的搜索(如%foo%)没有帮助,只对以特定字符串开头的搜索(如foo%)起作用。

总之,通过使用ILIKE操作符或LOWER函数,我们可以在PostgreSQL中实现大小写不敏感的搜索。这为我们提供了更灵活的搜索选项,使得我们可以找到与搜索项相似但不完全匹配的结果。

0