Php mysql select语句具有唯一和最大选择数?
我有很多记录要插入MYSQL表“table1”。其中有些是重复的 我有一个由“字段a”和“DUP_编号”组成的复合唯一约束 因此,一组记录的示意图如下所示:Php mysql select语句具有唯一和最大选择数?,php,mysql,Php,Mysql,我有很多记录要插入MYSQL表“table1”。其中有些是重复的 我有一个由“字段a”和“DUP_编号”组成的复合唯一约束 因此,一组记录的示意图如下所示: ID FIELD A DUP_NUMBER 1 text1 0 2 text2 0 3 text2 1 4 text2 2 5 text3 0 再来一次,将其实际插入表中。如果可能的话,我怎么
ID FIELD A DUP_NUMBER
1 text1 0
2 text2 0
3 text2 1
4 text2 2
5 text3 0
再来一次,将其实际插入表中。如果可能的话,我怎么做
我正在寻找一个mysql select语句,它将只选择字段a中唯一的条目,但添加了一个附加条件,即您将获得最高的DUP_编号
结果集应该如下所示:
ID FIELD A DUP_NUMBER
1 text1 0
4 text2 2
5 text3 0
提前感谢,
账单您可以使用此查询:
SELECT `FIELD A`, MAX(`DUP_NUMBER`) AS `DUP_NUMBER`
FROM `table1`
GROUP BY `FIELD A`
您真的需要按原样对数据进行结构化吗?似乎可以通过删除
DUP_NUMBER
列来简化它,假设重复的编号与ID
的顺序相同,您可以使用以下查询:
SELECT `FIELD A`, MAX(`DUP_NUMBER`) AS `DUP_NUMBER`
FROM `table1`
GROUP BY `FIELD A`
您真的需要按原样对数据进行结构化吗?它看起来可以通过删除DUP_NUMBER
列来简化,假设重复的数字与ID
的顺序相同,请尝试以下操作
select id , `field a` ,MAX(`DUP_NUMBER`) as dup_number
from table1 group by `FIELD A`
试试这个
select id , `field a` ,MAX(`DUP_NUMBER`) as dup_number
from table1 group by `FIELD A`
您可以按如下方式执行:
SELECT field_a, max(dup_number) as dup
FROM table1
GROUP BY field_a
max
aggregation函数为您提供重复编号的最大值,而group by担保仅显示唯一的项目
如果您还需要知道id,可以执行以下操作
SELECT t.*
FROM table1 t INNER JOIN (
SELECT field_a, max(dup_number) as dup
FROM table1
GROUP_BY dup_number
) g ON t.field_a = g.field_a AND t.dup_number = g.dup
您可以按如下方式进行操作:
SELECT field_a, max(dup_number) as dup
FROM table1
GROUP BY field_a
max
aggregation函数为您提供重复编号的最大值,而group by担保仅显示唯一的项目
如果您还需要知道id,可以执行以下操作
SELECT t.*
FROM table1 t INNER JOIN (
SELECT field_a, max(dup_number) as dup
FROM table1
GROUP_BY dup_number
) g ON t.field_a = g.field_a AND t.dup_number = g.dup
谢谢你的详细解释谢谢你的详细解释