[mysql] Waardes count() in een SET fieldtype

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil in 1 query tellen hoevaak een bepaalde waarde in een SET voorkomt...

het lastige zit hem dus in schilderijen die meerdere kleuren hebben, bijv. blauw,rood of groen,geel,blauw

Na driftig zoeken heb ik een oplossing gevonden, en dit geeft wel de juiste output maar ik vraag me af of dit wel DE manier is. Ik heb me helemaal gek gezocht, maar kon niets anders vinden.

code:
1
2
3
4
5
6
SELECT 
SUM( IF( FIND_IN_SET('rood',kleuren), 1, 0 ) ) AS heeft_groen, 
SUM( IF( FIND_IN_SET('geel', kleuren), 1, 0 ) ) AS heeft_geel, 
SUM( IF( FIND_IN_SET('groen', kleuren), 1, 0 ) ) AS heeft_groen, 
SUM( IF( FIND_IN_SET('blauw', kleuren), 1, 0 ) ) AS heeft_blauw 
FROM schilderijen

Acties:
  • 0 Henk 'm!

Verwijderd

Heb je er een goede reden voor om die kleuren niet in een aparte tabel te zetten en een koppeltabel te gebruiken?

Acties:
  • 0 Henk 'm!

  • cariolive23
  • Registratie: Januari 2007
  • Laatst online: 18-10-2024
het lastige zit hem dus in schilderijen die meerdere kleuren hebben, bijv. blauw,rood of groen,geel,blauw
Je zegt het zelf al, jouw datamodel is fout. Cheatah heeft de oplossing gegeven, succes!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
de schilderijen table was een voorbeeld, en dit is niet waarvoor ik het daadwerkelijk gebruik.

de structuur wil ik op deze manier hebben, alleen ik vraag me dus af of er een andere manier is om de aantallen van de individuele waardes in de SET op te tellen.