mi columna mysql llamada json :
{"myarray":[ { "users":"82,191", type":"3" } ]} esto está encima de la columna de la tabla json quiero encontrar un usuario con id 191. 82 funcionando bien. pero 191 no encontrado.
mi consulta sql es:
SELECT id FROM tablename WHERE JSON_EXTRACT(json, CONCAT('$.myarray[0].users') ) IN (82) --this is working SELECT id FROM tablename WHERE JSON_EXTRACT(json, CONCAT('$.myarray[0].users') ) IN (191) --but this is not working. nothing fetched. empty results.¿Cómo puedo obtener resultados si json también tiene 191?
JSON_EXTRACT en su caso devuelve la cadena "82,191" , por lo que para la búsqueda puede usar la combinación JSON_UNQUOTE con FIND_IN_SET como:
SELECT id FROM tablename WHERE FIND_IN_SET(82, JSON_UNQUOTE( JSON_EXTRACT(json, '$.myarray[0].users') )) > 0;O directamente (sin quitar comillas)
SELECT id FROM tablename WHERE FIND_IN_SET (82, json ->> '$.myarray[0].users')