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

mysql select query dentro de um array serializado


Como o GWW diz nos comentários, se você precisar consultar as coisas dessa maneira, realmente deve considerar armazenar esses dados como algo diferente de uma string grande ole (que é o que é seu array serializado).

Se isso não for possível (ou você é apenas preguiçoso), você pode usar o fato de que a matriz serializada é apenas uma string grande e descobrir uma cláusula LIKE para encontrar registros correspondentes. A maneira como o PHP serializa os dados é muito fácil de descobrir (dica:esses números indicam o comprimento das coisas).

Agora, se sua matriz serializada for bastante complexa, isso será interrompido rapidamente. Mas se for uma matriz plana, você poderá fazê-lo.

Claro, você usará LIKE '%...%', então você não receberá ajuda de nenhum índice e o desempenho será muito ruim.

É por isso que as pessoas estão sugerindo que você armazene esses dados de maneira normalizada, se precisar consultar "dentro" deles.