[MYSQL] zoeken naar waardes binnen CSV-velden

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

  • ekkoper
  • Registratie: Augustus 2003
  • Laatst online: 17-11-2024
Hallo!
Ik ben bezig met een script waarbij ik een query zou willen gebruiken die in een veld van een tabel zoekt of een bepaalde waarde daarin voorkomt. Dit veld bevat echter (meestal) meerdere waraden die gescheiden zijn door komma's.

Ik wil dan bijvoorbeeld alle rijen uit de tabel selecteren die in de kolom `genres` de waarde '6' heeft, zoals in dit veld:
code:
1
2
naam: genres
value: 4,6,9


Ik heb reeds gezocht in de MYSQL-handleiding, maar kon niets vinden (behalve INSTR, maar dat vond ik niet zo'n mooie oplossing).
Kan iemand mij ierbij helpen?

Alvast bedankt!
Eduard

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 12:33

ripexx

bibs

Dit klinkt als een brak datamodel, want met een beetje normaliseren zorg je ervoor dat je deze waarde direct in een tabel kan opzoeken.

het eenvoudigste is zoiets
SQL:
1
2
3
select naam, `value`
from tabel
where naam = 'genres' AND `value` like '%6%';

[ Voor 6% gewijzigd door ripexx op 07-01-2006 16:22 ]

buit is binnen sukkel


  • smesjz
  • Registratie: Juli 2002
  • Niet online
mysql kent ook find_in_set:

$query = qq{SELECT cache FROM vacation WHERE email='$to' AND FIND_IN_SET('$from',cache)};

Die zoekt in dit geval door een comma seperated lijst.

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
ripexx schreef op Saturday 07 January 2006 @ 16:22:
...
het eenvoudigste is zoiets
SQL:
1
2
3
select naam, `value`
from tabel
where naam = 'genres' AND `value` like '%6%';
Dat is dan wel ervan uitgaande dat waarden tussen de 0 en 9 liggen. Kun je MySQL gebruik maken van reguliere expressies?

Punt van ripexx over je datamodel is geheel terecht. Een kolom bevat 1 waarde, als een kolom 1..n waarden kan bevatten, dan zou je eigenlijk moeten gaan normaliseren.

  • ekkoper
  • Registratie: Augustus 2003
  • Laatst online: 17-11-2024
Wat bedoelden jullie met normaliseren?

Een nieuwe tabel aanmaken met per rij een koppeling tussen twee rijen uit andere tabellen?
movie_id - genre_id
1 - 4
1 - 6
1 - 9
?

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 19-04 20:37
ekkoper schreef op zaterdag 07 januari 2006 @ 16:48:
Wat bedoelden jullie met normaliseren?
Je kunt "Normaliseren" zien als een techniek om tot een fatsoenlijk databasemodel te komen.

[ Voor 24% gewijzigd door Sybr_E-N op 07-01-2006 16:52 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Voorbeeldje van het Internet:
http://www.phphulp.nl/php/tutorials/3/150/259/

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.


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

NMe

Quia Ego Sic Dico.

Verder zijn er ook nog de BCNV (Boyce Codd Normaalvorm), 4NV en 5NV. Op deze laatste Normaalvormen ga ik niet in omdat deze bijna nooit gebruikt worden.
Leuke referentie zo. 8)7 Doe mij maar liever een complete bron: http://en.wikipedia.org/wiki/Database_normalization

@ekkoper: er staan bovendien meer dan genoeg topics met exact dezelfde vraag die jij stelt in dit subforum, die ongetwijfeld met de search terug te vinden zijn. Heb je gezocht voor je dit topic opende?

'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.


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Mee eens dat een complete bron altijd beter is, maar als de TS een vraag als "wat is normaliseren" stelt, dan denk ik dat het leren kennen van de 1e t/m de 3e normaalvorm een goed begin is. Zeker omdat het met praktische voorbeelden wordt toegelicht.

En ik ben het ten dele ook met de schrijver van het stuk eens, als er door de opsteller van een datamodel al genormaliseerd wordt, dan is dat voornamelijk het naar de 2e of 3e normaalvorm brengen. Wees blij dat hij de overige 3 ter sprake brengt :P

Ik denk dat je met de eerste 3 normaalvormen en een dosis gezond verstand in staat moet zijn om een datamodel te creeren waarin redundantie minimaal is.
Pagina: 1