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语句)