Mysql
 sql >> Database >  >> RDS >> Mysql

mysql select query all'interno di un array serializzato

Come dice GWW nei commenti, se hai bisogno di interrogare le cose in questo modo, dovresti davvero considerare di archiviare questi dati come qualcosa di diverso da una big-ole-string (che è ciò che è il tuo array serializzato).

Se ciò non è possibile (o sei solo pigro), puoi utilizzare il fatto che l'array serializzato è solo una stringa ole-grande e calcolare una clausola LIKE per trovare i record corrispondenti. Il modo in cui PHP serializza i dati è abbastanza facile da capire (suggerimento:quei numeri indicano la lunghezza delle cose).

Ora, se il tuo array serializzato è abbastanza complesso, questo si romperà velocemente. Ma se è un array piatto, dovresti essere in grado di farlo.

Ovviamente utilizzerai LIKE '%...%', quindi non riceverai alcun aiuto da alcun indice e le prestazioni saranno molto scarse.

Ecco perché la gente suggerisce di archiviare quei dati in modo normalizzato, se è necessario eseguire query "al suo interno".