[英]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.