Postgres如何在报价中添加列

时间:2016-02-06 06:27:40

标签: postgresql postgresql-9.3 postgresql-9.4 partial-index

首先,我使用postgres版本9.4。我正在尝试在此查询上创建部分索引

<%@ page contentType="text/html; charset=iso-8859-1" language="java" %>

<html>
    <head>
        <title>JSON Data</title>
        <link rel="stylesheet" href="dist/css/bootstrap.css" />
    </head>
    <body>
        <div class="container-fluid">
            <%
                String[] names = { "Alfreds Futterkiste", "B's Beverages", "Berglunds snabbköp", "Blondel père et fils", "Bólido Comidas preparadas", "Bon app'", "Comércio Mineiro" };
                response.addHeader("Access-Control-Allow-Origin", "*");
            %>
            <%
                out.print("{ \"records\":[ ");
                for(int i = 0; i < names.length; i++)
                {
                    if(i == (names.length - 1))
                        out.print("{\"Name\":\"" + names[i] + "\"}");
                    else
                        out.print("{\"Name\":\"" + names[i] + "\"}, ");
                }
                out.print(" ] }");
            %>
        </div>
    </body>
</html>

我的问题是我不知道如何将列放在引号&#39;%&#39; 中,以便部分索引看起来像这样

select DISTINCT ON(city,state)city,state,zip from zips where city ilike 
'%' and state ilike '%' limit 10

将列放在单引号内的正确方法是什么?我一直在寻找这个地方。现在我的部分索引看起来像这样

 select DISTINCT ON(city,state)city,state,zip from zips where city ilike 
    '{city}%' and state ilike '{state}%' limit 10

这显然没有帮助,因为postgres正在对待&#39; city%&#39;和州ilike&#39;州%&#39; 作为变量而不是列。我有一个搜索框,用户输入城市和州字段,所以我想优化。任何帮助将不胜感激......

1 个答案:

答案 0 :(得分:0)

试试这个

 WHERE column_name LIKE column_name||'%'

请参阅此Link