[MySQL] Vergelijkbare record weglaten

Pagina: 1
Acties:

  • devilbird
  • Registratie: November 2004
  • Laatst online: 17-01-2024
Ik heb een database met bv de volgende records

id | subject | filename | location
1 | hallo (2/3) | test1.rar | D
2 | hallo (3/3) | test2.rar | D
3 | zomaar (1/2) | iets1.zip | Z
4 | zomaar (2/2) | iets2.zip | Z

Nu wil ik dingen zoeken in subject, en als ik bijvoorbeeld op hallo zoek, dat hij alleen 1 keer hallo weergeeft en niet allebei. Of als ik alles uit de tabel wil weergeven maar 1 keer hallo, en 1 keer zomaar zie. Ik heb al rondgezocht maar kan de oplossing zo niet vinden. Aangezien de records eigenlijk niks unieks hebben alleen het eerste gedeelte van het subject.

<--- http://www.lansensations.nl --->


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Deze en deze pagina zouden je verder moeten helpen.

[ Voor 185% gewijzigd door GlowMouse op 08-04-2005 13:58 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je zult met een combinatie van LEFT/RIGHT/SUBSTRING en DISTINCT aan de slag moeten

SELECT DISTINCT [linkerstuk_van_subject_tot_aan_haakje]
FROM Tabel

Oops! Google Chrome could not find www.rijks%20museum.nl


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

SQL:
1
Select distinct subject from <tabelnaam>
Da's toch wel erg basis.....
Als je die haakjes in de velden hebt staan zou je de distinct over het gedeelte voor het haakje kunnen gooien.

My personal website


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Als je nou eens die haakjes weglaat in het subject, en er een nieuw veld voor maakt, of het gewoon helemaal weglaat, dan heb je dit hele probleem niet en kun je de query van OZ-Gump eens bekijken. Je zou in principe (1/3) bijvoorbeeld gewoon weg kunnen laten, en alleen een veldje "volgnummer" op kunnen nemen, waar je alleen die 1 in zet. Die 3 kun je berekenen met een COUNT() in combinatie met een GROUP BY. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • devilbird
  • Registratie: November 2004
  • Laatst online: 17-01-2024
Ok dat werkt inderdaad, maar hoe doe ik het als ik alle records in de database wil weergeven?
Als ik bijvoorbeeld doe Select distinct * from <tabelnaam> dan krijg ik gewoon alles te zien. dus 2 keer die zomaar en 2 keer die hallo, terwijl ik ze dan beide 1 keer wil weergeven.

<--- http://www.lansensations.nl --->


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
devilbird schreef op vrijdag 08 april 2005 @ 14:06:
Ok dat werkt inderdaad, maar hoe doe ik het als ik alle records in de database wil weergeven?
Als ik bijvoorbeeld doe Select distinct * from <tabelnaam> dan krijg ik gewoon alles te zien. dus 2 keer die zomaar en 2 keer die hallo, terwijl ik ze dan beide 1 keer wil weergeven.
DISTINCT geldt voor de hele rij, als je dat niet wilt moet je gaan werken met GROUP BY zodat je van de 'overige' kolommen moet gaan bepalen welk je dan wilt zien

id | subject | filename | location
1 | hallo (2/3) | test1.rar | D
2 | hallo (3/3) | test2.rar | D

Jij wilt van bovenstaande maar 1 x hallo zien, maar ook de rest van de velden, welke ID wil je dan? 1 of 2? Dat kan de database niet voor je bepalen, dat zul je zelf moeten doen.

Meer info: P&W FAQ - SQL

Oops! Google Chrome could not find www.rijks%20museum.nl


  • devilbird
  • Registratie: November 2004
  • Laatst online: 17-01-2024
-NMe- schreef op vrijdag 08 april 2005 @ 14:04:
Als je nou eens die haakjes weglaat in het subject, en er een nieuw veld voor maakt, of het gewoon helemaal weglaat, dan heb je dit hele probleem niet en kun je de query van OZ-Gump eens bekijken. Je zou in principe (1/3) bijvoorbeeld gewoon weg kunnen laten, en alleen een veldje "volgnummer" op kunnen nemen, waar je alleen die 1 in zet. Die 3 kun je berekenen met een COUNT() in combinatie met een GROUP BY. :)
Jep dat begrijp ik, maar ik trek deze gegevens van internet af, en daar eindigen multiparts helaas op (x/x) daar ken ik verder niks aan doen. En ik ben niet zo goed met reguliere expressies. Waarmee ik dus die 2 haakjes eraf kan halen.
Jij wilt van bovenstaande maar 1 x hallo zien, maar ook de rest van de velden, welke ID wil je dan? 1 of 2? Dat kan de database niet voor je bepalen, dat zul je zelf moeten doen.
Dat maakt mij niet uit, als hij maar 1 keer wordt weergeven :)

[ Voor 16% gewijzigd door devilbird op 08-04-2005 14:13 ]

<--- http://www.lansensations.nl --->


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
devilbird schreef op vrijdag 08 april 2005 @ 14:10:
[...]


Jep dat begrijp ik, maar ik trek deze gegevens van internet af, en daar eindigen multiparts helaas op (x/x) daar ken ik verder niks aan doen. En ik ben niet zo goed met reguliere expressies. Waarmee ik dus die 2 haakjes eraf kan halen.


[...]

Dat maakt mij niet uit, als hij maar 1 keer wordt weergeven :)
GROUP BY Gebruiken dus :)

Oops! Google Chrome could not find www.rijks%20museum.nl


  • devilbird
  • Registratie: November 2004
  • Laatst online: 17-01-2024
Ok, het is helemaal gelukt, ik heb toch maar dat (123/123) eraf gehaald met een reguliere expressie, en samen met GROUP BY georganiseerd. Ik kon alleen DISTINCT maar vind eigenlijk GROUP BY een veel mooier opdracht.

Bedankt voor jullie hulp

<--- http://www.lansensations.nl --->

Pagina: 1