Esto podría ser lo suficientemente simple con SQL básico o podría necesitar un REGEXP, pero me he topado con un muro de ladrillos.Consulta de MySQL para buscar un campo con cadena JSON
Mi datos se almacenan en una cadena JSON como estos dos ejemplos (cada uno en 1 campo):
[{"id":"2","value":["1","3"]},{"id":"3","value":["1","2"]}]
y:
[{"id":"3","value":["2"]},{"id":"3","value":["1","2","5"]}]
Quiero buscar valores entre esos últimos soportes que puede consistir en muchos números ["1","2","5"] or just a single on ["2"]
. Los números iniciales corresponden a 2 categorías: la única "id":"2"
y "id":"3"
.
El uso de %"2"%
con un LIKE simple por supuesto coincide con todo. Puedo consultar por el "id":"$var"
para devolver cada categoría y luego usar PHP para filtrarla después de que tengamos los resultados, pero los datos pueden ser bastante grandes y estoy seguro de que es fácil para un gurú de SQL.
No tengo la opción de cambiar el formato del campo, debe permanecer como JSON.
¡Cualquier ayuda apreciada! Gracias.
serías capaz de ayudarme en un problema similar? ''" (. * \ "Reticle. * \": \ "*.'. $ Reticle2. '. * \") "' 'Es lo que mi' REGEXP' se ve y es un parámetro para enlazar ': reticle' . La consulta funciona pero no hay resultados. – r3wt
Solo quiero agregar que este tipo de consultas no pueden indexarse, por lo que si está utilizando esto en un sitio web de alto tráfico, dichas implementaciones pueden generar grandes éxitos de rendimiento. – Oddman