Mysql
 sql >> Base de données >  >> RDS >> Mysql

Plusieurs options de case à cocher stockées dans un seul champ dans une base de données

Comme l'a souligné Jrod en utilisant le LIKE mot clé répondra probablement à vos besoins.

Cependant, en passant, il existe d'autres moyens qui pourraient être meilleurs à long terme.

Relation 1-N

Si vous avez vos compétences dans un tableau séparé, vous pouvez ensuite les connecter dans une relation un à plusieurs, cela signifierait que vous pourriez interroger par compétence, puis joindre les personnes concernées à la requête. Cela vous permettrait d'avoir des requêtes plus complexes telles que la possibilité de rechercher plus d'une compétence correspondante ou une compétence de correspondance conditionnelle mais pas une autre compétence.

Drapeaux de bits

Comme vous dites que ce sont des cases à cocher, je suppose que vos compétences sont limitées (par le nombre de cases à cocher), une autre approche consiste à utiliser un nombre entier et à utiliser des drapeaux de bits - par exemple :

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

Additionner la valeur cumulée de toutes vos cases à cocher et la stocker sous forme d'entier vous permettrait d'interroger la base de données à l'aide d'un au niveau du bit ET (&)