Toon posts:

[MySQL] controleren op dubbele waarden

Pagina: 1
Acties:
  • 171 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

ik heb een tabel waar in een kolom geen dubble waarden voor mogen komen.
Helaas is na het op nieuwe inrichten van de server die kolom niet aangemaakt als "unique".
En wat nog erger is.... er staan nu wel dubbele waarde in en die moeten eruit.

ik kan controleren met een query
select count(*),id,kolom from tabel group by kolom

nu krijg ik netjes de aantallen ervoor de staan...
maar het zijn zo'n 6000 regels... dus het is een beetje on overzichtelijk.

kan ik die query ook nog anders maken?

select count(*) as a,id,kolom from tabel where a > 1 group by kolom
dit werkt helaas niet.

Weet iemand hier iets voor ?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Bij aggregate functies moet je gebruik maken van HAVING ipv WHERE.
zie hier

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Je kan sorteren op de count-kolom, als het dan van groot naar klein doet, komen de grootste automatisch bovenaan..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Je topic komt me bekend voor :

Heb je de search al gebruikt ??

[url]"http://search.gathering.tweakers.net/forum.php/find/keyword?action=find&data%5Bsearchtype%5D=search&data%5Bq%5D=mysql+dubbele+waarden&data%5Bboolean%5D=OR&data%5Bposter%5D=&data%5Btopicstarter%5D=&data%5Border%5D=relevance&data%5Bage_start%5D=&data%5Bage_end%5D=&data%5Btopicstatus%5D=&data%5Bsearch%5D=Zoek"[/url]

[ Voor 20% gewijzigd door Verwijderd op 17-03-2003 10:52 ]


Verwijderd

Topicstarter
drm schreef op 17 March 2003 @ 10:45:
Bij aggregate functies moet je gebruik maken van HAVING ipv WHERE.
zie hier
bedankt het werkt !!

select count(*),id,kolom from tabel group by kolom having count(*) > 1;

kan ik dan ook
delete from tabel having count(*) > 1;
doen?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

ik zie daar niks over staan, nee... Maar je kunt natuurlijk ook nog gewoon proberen...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Wat ook kan is middels je select statement eerst alle ID`s in een variabele te plaatsen (gescheiden door spatie+komma) en vervolgens een tweede query uit te voeren die alle records verwijderd waarvan de id in de variabele staat.

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Nee dat kan (natuurlijk) niet, want welke moet dan worden weggegooid.
Nu zouden ze, als het al uberhaupt zou werken allebei worden weggegooid. Lijkt me niet de bedoeling.

enige mogelijkheid is met een sub select en dat kan MySQL niet aan.
Verwijderd schreef op 17 maart 2003 @ 10:51:
[...]


bedankt het werkt !!

select count(*),id,kolom from tabel group by kolom having count(*) > 1;

kan ik dan ook
delete from tabel having count(*) > 1;
doen?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Goodielover:
Nee dat kan (natuurlijk) niet, want welke moet dan worden weggegooid.
Nu zouden ze, als het al uberhaupt zou werken allebei worden weggegooid. Lijkt me niet de bedoeling.
natuurlijk kan dat niet != natuurlijk wil je dat niet ;)

In theorie kan het natuurlijk zo zijn dat alles wat aan de gestelde clausulen voldoet in een SELECT query, in een DELETE query verwijderd moet worden... Dus dan zou 't een kwestie zijn van de nieuwste of degene met 't hoogste ID van die 2, whatever :)

't Enige probleem is dat je bij een SELECT query kan groupen en bij DELETE niet ;)
[/theoretisch gezwam]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Wat ook een mogelijkheid is, maar zeker niet de schoonheidsprijs zal verdienen, is een identieke kopie van je tabel aan te maken om vervolgens met een self-join alle dubbele id`s te verwijderen. ´t Is maar een idee ;)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones

Pagina: 1