2

我正在使用 SQL 尝试使用 PGAdmin 从具有 3.5m 行的表中返回条目的子集。以下代码返回 131,970 行:

SELECT 
  orgs.org_name, 
  orgs.org_oid
FROM 
  public.orgs
WHER
  org_name LIKE 'L%'
ORDER BY
  orgs.org_name ASC

但是,一旦我将更多字符添加到 LIKE 标准中,PGAdmin 根本不会返回任何数据:

SELECT 
  orgs.org_name, 
  orgs.org_oid
FROM 
  public.orgs
WHER
  org_name LIKE 'Lo%'
ORDER BY
  orgs.org_name ASC

我认为我的 SQL 没有任何问题,但是我没有从 PGAdmin 收到任何错误消息,表明内存或其他任何可能是问题所在。

我正在使用 PGAdmin 1.16.0 和 Postgres 9.2 在 mac OS X 10.8 上运行

4

3 回答 3

2

您可以使用ilike不区分大小写的过滤器:

SELECT orgs.org_name, orgs.org_oid FROM public.orgs
WHERE
UPPER(org_name) ILIKE 'LO%' --OR ILIKE 'lo%' (same thing)
于 2012-12-17T11:49:32.590 回答
2

尝试对数据使用 lower 关键字:

SELECT 
  orgs.org_name, 
  orgs.org_oid
FROM 
  public.orgs
WHER
  lower(org_name) LIKE 'lo%'
ORDER BY
  orgs.org_name ASC
于 2012-12-17T11:33:33.937 回答
2

如果您确定orgs您的名称以“Lo”开头,请尝试UPPER如下使用:

SELECT 
  orgs.org_name, 
  orgs.org_oid
FROM 
  public.orgs
WHERE
  UPPER(org_name) LIKE 'LO%'
ORDER BY
  orgs.org_name ASC
于 2012-12-17T11:34:09.977 回答