mysql 查询显示字段A和字段B,如果字段A相同的只显示第一行,其它行相同的先显示为空
时间: 2024-02-05 12:14:07 浏览: 55
多行相同只显示第一行(分组显示).sql
你可以使用 `GROUP BY` 和 `IF()` 函数来实现需求。具体的 SQL 查询语句如下:
```mysql
SELECT A, IF(@a = A, '', B) AS B, @a:=A
FROM your_table
GROUP BY A;
```
解析:
- `@a` 是一个用户变量,用于存储前一行的 A 值;
- 在 `SELECT` 中使用 `IF()` 函数来判断当前行的 A 值是否与前一行相同,如果相同则将 B 值置为空字符串,否则显示当前行的 B 值;
- 最后更新 `@a` 的值为当前行的 A 值。
注意:在执行该 SQL 查询时,需要将 MySQL 的变量 `sql_mode` 中的 `ONLY_FULL_GROUP_BY` 关闭,否则会报错。可以通过执行 `SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));` 来关闭该选项。
阅读全文