Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅显示重复列值中的第一个_Php_Mysql_Database - Fatal编程技术网

Php 仅显示重复列值中的第一个

Php 仅显示重复列值中的第一个,php,mysql,database,Php,Mysql,Database,如何查询删除下面的视图 +-------------------+------------+ | Order_id | Weight | | 20 | 4 | | 21 | 5 | | 22 | 2 | | 22 | 2 | +-------------------+----

如何查询删除下面的视图

+-------------------+------------+
| Order_id          |   Weight   |
| 20                |          4 | 
| 21                |          5 | 
| 22                |          2 | 
| 22                |          2 |
+-------------------+------------+
像这样:

+-------------------+------------+
| Order_id          |   Weight   |
| 20                |          4 | 
| 21                |          5 | 
| 22                |          2 | 
| 22                |            |
+-------------------+------------+

当显示结果但未输入数据库时。

确定,以下是如何执行此操作:

SELECT
   Order_id,
   Weight,
   if(@order_id = Order_id, '', Weight) as no_dup_weight,
   @order_id := Order_id as dummy
FROM      Table1
ORDER BY  Order_id asc;
您基本上需要检查前一个
订单id
是否与当前相同,如果相同,则输出一个空字段


这是一个。

你真的需要两行复制吗?你就不能按要求使用DISTINCT子句吗

或者知道什么有重复项很重要。在这种情况下,您应该查看GROUP BY子句,一个简单的方法是:

select DISTINCT order_id, weight from xyz
UNION
select order_id, null from xyz
group by order_id, weight
having count(*) > 1
Order by weight desc;
第一个select语句将显示所有唯一值,第二个select语句将仅检索重复的值


在所需的输出表中,似乎要显示所有非重复行和重复行的第一列值,但不显示第二列值。上面的查询将允许您这样做。

您想显示订单id 22两次,但只显示重量一次吗?您的查询现在是什么样子的?(请编辑您的问题以包含SQL语句)