我知道您可以使用以下查询在MYSQL中选择重复的行:
SELECT ID, bedrijfsnaam, plaats, COUNT( * )
FROM profiles
GROUP BY bedrijfsnaam, plaats
HAVING COUNT( * ) >1
我希望能够选择重复项并使用PHP重命名它们。那可能吗? 如果它找到一个'bedrijfsnaam-plaats'组合的三个重复,我想补充 在'bedrijfsnaam'价值结束时'我','II','III'。这甚至可能吗?在那儿 我可以运行某种循环吗?
谢谢..
答案 0 :(得分:1)
您可以直接找到重复的行,而不是计数:
SELECT DISTINCT p2.ID, p2.bedrijfsnaam, p2.plaats
FROM profiles p
JOIN profiles p2 on p2.bedrijfsnaam = p.bedrijfsnaam
AND p2.plaats = p.plaats
AND p2.ID > p.ID -- this is where the magic occurs
然后相应地运行更新......
答案 1 :(得分:1)
我认为这两个查询可以是一个答案:
create table maptable as
SELECT
p2.ID,
concat(p2.bedrijfsnaam,count(*)) as bedrijfsnaam_new
FROM profiles p
JOIN profiles p2 on p2.bedrijfsnaam = p.bedrijfsnaam
AND p2.plaats = p.plaats
AND p2.ID > p.ID
group by p2.id,p2.bedrijfsnaam, p2.plaats;
update
profiles,
maptable
set
profiles.bedrijfsnaam=bedrijfsnaam_new
where
profiles.id=maptable.id;
第一部分基于丹尼斯的回答......