sql >> Database >  >> RDS >> Mysql

Meerdere selectievakjes opgeslagen in een enkel veld in een database

Zoals Jrod opmerkte met behulp van de LIKE zoekwoord zal waarschijnlijk aan uw behoeften voldoen.

Er zijn echter andere manieren die op de lange termijn misschien beter zijn.

1-N relatie

Als je je vaardigheden in een aparte tabel hebt staan, kun je ze vervolgens verbinden in een één-op-veel-relatie, dat zou betekenen dat je per vaardigheid kunt zoeken en vervolgens de relevante mensen bij de vraag kunt voegen. Dit zou u in staat stellen om complexere zoekopdrachten te hebben, zoals het zoeken naar meer dan één overeenkomende vaardigheid of voorwaardelijke matching-vaardigheid, maar niet naar een andere vaardigheid.

Bitvlaggen

Zoals je zegt, zijn het selectievakjes. Ik neem aan dat je vaardigheden beperkt zijn (door het aantal selectievakjes). Een andere benadering is om een ​​geheel getal te gebruiken en bit-vlaggen te gebruiken, bijvoorbeeld:

  • Java =1
  • C++ =2
  • Lisp` =4
  • haskell =8
  • Python =16

Als u de cumulatieve waarde van al uw selectievakjes bij elkaar optelt en dit als een geheel getal opslaat, kunt u de database doorzoeken met behulp van een bitsgewijs EN (&)



  1. het vervullen van de vereiste hoeveelheid met behulp van mysql

  2. Is SELECT of INSERT in een functie die vatbaar is voor race-omstandigheden?

  3. mysqldump:kreeg errno 32 bij schrijven

  4. Queryprestaties meten:uitvoeringsplan Querykosten versus benodigde tijd