Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Várias opções de caixa de seleção armazenadas em um único campo em um banco de dados


Como Jrod apontou usando o LIKE palavra-chave provavelmente satisfará suas necessidades.

No entanto, em uma nota lateral, existem outras maneiras que podem ser melhores a longo prazo.

Relação 1-N

Se você tiver suas habilidades em uma tabela separada, poderá conectá-las em um relacionamento de um para muitos, o que significaria que você poderia consultar por habilidade e, em seguida, juntar as pessoas relevantes à consulta. Isso permitiria que você tivesse consultas mais complexas, como pesquisar mais de uma habilidade correspondente ou habilidade de correspondência condicional, mas não outra habilidade.

Sinalizadores de bits

Como você diz que são caixas de seleção, estou assumindo que suas habilidades são limitadas (pelo número de caixas de seleção), outra abordagem é usar um inteiro e usar sinalizadores de bit - por exemplo:
  • Java =1
  • C++ =2
  • Lisp` =4
  • haskell =8
  • Python =16

Adicionar o valor acumulado de todas as suas caixas de seleção e armazená-lo como um número inteiro permitiria consultar o banco de dados usando um bit a bit E (&)