加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在postgresql中忽略select distinct的列?

发布时间:2020-12-13 18:10:22 所属栏目:百科 来源:网络整理
导读:大家好! 我有一个SQL(见上文),我想知道我怎么能确保我不会得到关于名称的双打.如果名称出现在第一个中选择它是主要名称,则应在以下选择中忽略. "SELECT name,id,'place' AS tablename FROM places WHERE lower(name) LIKE '".strtolower($needle)."%'" ."UN
大家好!

我有一个SQL(见上文),我想知道我怎么能确保我不会得到关于名称的双打.如果名称出现在第一个中选择它是主要名称,则应在以下选择中忽略.

"SELECT name,id,'place' AS tablename FROM places WHERE lower(name) LIKE '".strtolower($needle)."%'"
    ."UNION SELECT name,'community' AS tablename FROM communities WHERE lower(name) LIKE '".strtolower($needle)."%'"
    ."UNION SELECT name,'district' AS tablename FROM districts WHERE lower(name) LIKE '".strtolower($needle)."%'"
    ."UNION SELECT name,'region' AS tablename FROM regions WHERE lower(name) LIKE '".strtolower($needle)."%'"
    ."UNION SELECT name,'province' AS tablename FROM provinces WHERE lower(name) LIKE '".strtolower($needle)."%'"
    ."ORDER BY name LIMIT 10"

这是我的SQL.

你需要更多信息吗?

谢谢

DISTINCT
SELECT DISTINCT ON (name) name,tablename 
FROM (
    SELECT name,'place' AS ... 
    UNION ... 
    UNION ... 
    UNION ... 
    UNION ...) AS subQuery
ORDER BY name LIMIT 10

只需通过将查询用作子查询,指定仅对名称执行不同的操作.

在不同的期间执行限制和排序,否则不同的可能会丢弃欺骗并且不以正确的排序顺序放弃完整的10行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读