Operador MySQL IN ()
Ao consultar um banco de dados MySQL, o operador WHERE IN () é frequentemente usado para recuperar linhas com base em dados específicos valores em uma coluna. Por exemplo, a consulta a seguir recupera todas as linhas da tabela "table" onde a coluna "id" corresponde a qualquer um dos valores (1, 2, 3, 4):
SELECT * FROM table WHERE id IN (1,2,3,4);
No entanto, surge um problema quando um registro tem vários valores de "id", como 1 e 3. Nesses casos, a consulta pode não retornar essa linha.
Solução
A consulta se traduz nas seguintes condições OR:
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
Portanto, ele retornará apenas linhas que correspondam a qualquer um desses condições.
Para resolver isso, uma opção é usar o tipo de dados SET para a coluna "id". Isso permite armazenar vários valores usando strings separadas por vírgula. Você pode então usar a função FIND_IN_SET() para procurar valores específicos:
SELECT * FROM table WHERE FIND_IN_SET('1', id);
Esta consulta retornará todas as linhas que possuem '1' como um dos valores na coluna "id", independentemente de quaisquer outros valores que possam estar presentes.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3