繁体   English   中英

如何对多个列使用Distinct?

[英]How to use Distinct for multiple columns?

$q=mysql_query("SELECT DISTINCT zone, location FROM service_info WHERE city='".$_REQUEST['city']."' and sr_no=1");

我要区分区域和位置

如果您只想检索一个不同区域的列表和一个不同位置的列表,它们都符合条件,则您可能应该为每个区域发出两个单独的查询,因为这两个列表将彼此不相关,因此可以在其中检索它们。一个查询就没有意义。 您似乎只想并排显示两个列表,而这应该在表示层而不是数据库中完成。

但是,您也可以考虑采用以下方法:

SELECT
  (
    SELECT GROUP_CONCAT(DISTINCT zone)
    FROM service_info
    WHERE city='".$_REQUEST['city']."' AND sr_no=1
  ) AS zones
,
  (
    SELECT GROUP_CONCAT(DISTINCT location)
    FROM service_info
    WHERE city='".$_REQUEST['city']."' AND sr_no=1
  ) AS locations

上面的查询将返回两列的一行,每列包含一个逗号分隔的项目列表。 如果您希望列表看起来像是列,则可以将换行符明确指定为分隔符,如下所示:

GROUP_CONCAT(DISTINCT zone SEPARATOR '<br />')

如果不需要单独的列,则可以执行以下操作:

SELECT
    zone
FROM 
    service_info 
WHERE 
    city='".$_REQUEST['city']."' and sr_no=1
UNION
SELECT
    location 
FROM 
    service_info
WHERE
    city='".$_REQUEST['city']."' and sr_no=1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM