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

requête mysql select dans un tableau sérialisé

Comme le dit GWW dans les commentaires, si vous avez besoin d'interroger les choses de cette façon, vous devriez vraiment envisager de stocker ces données autrement qu'en tant que chaîne big-ole (ce qui correspond à votre tableau sérialisé).

Si ce n'est pas possible (ou si vous êtes paresseux), vous pouvez utiliser le fait que le tableau sérialisé n'est qu'une grande chaîne de caractères et comprendre une clause LIKE pour trouver les enregistrements correspondants. La façon dont PHP sérialise les données est assez facile à comprendre (indice :ces chiffres indiquent la longueur des choses).

Maintenant, si votre tableau sérialisé est assez complexe, cela se décomposera rapidement. Mais s'il s'agit d'un tableau plat, vous devriez pouvoir le faire.

Bien sûr, vous utiliserez LIKE '%...%', vous n'obtiendrez donc aucune aide d'aucun indice et les performances seront très médiocres.

C'est pourquoi les gens vous suggèrent de stocker ces données d'une manière normalisée, si vous avez besoin d'interroger "à l'intérieur".