/ / Consultando vários valores no campo separado por vírgula - mysql

Consultando vários valores no campo separado por vírgula - mysql

Por exemplo, eu tenho isso como um campo em uma coluna:

3,21,23,41,47,56,57,61,64,74,78,79,82,83,86,90,94

Esses são os IDs e estou tentando descobrir como posso pesquisar vários números que tentei, por exemplo:

SELECT * FROM table WHERE status="A" AND (FIND_IN_SET("3,64", myids))

Isso só parece funcionar se o 3 e o 64 estiverem juntos e a saída do find_in_set para cada valor puder ser um pouco dolorosa.

Quaisquer melhores soluções ou sugestões?

Respostas:

2 para resposta № 1

FIND_IN_SET() encontra apenas a posição do primeiro argumento (ver Referência do MySQL, Funções de String).

Você pode usar um único FIND_IN_SET para cada ID que você está procurando:

SELECT * FROM table WHERE status="A" AND
FIND_IN_SET("3", myids) AND FIND_IN_SET("64", myids)

2 para resposta № 2
SELECT * FROM table WHERE status="A" AND myids in (3, 64)

Você pode tentar este.


1 para resposta № 3

Tabela SELECT * FROM WHERE myids REGEXP REPLACE ("3,64", ",", "(, | $) |");


-1 para resposta № 4
foreach($ids as $id)
{
SELECT * FROM table WHERE status="A" AND (FIND_IN_SET($id, myids))
}

that check one by one and getting the result from table.