Tengo una tabla llamada Usuario que contiene una columna llamada UserDetails. columna userDetails con datos en formato json como se muestra a continuación.
{ "id": "77", "uid": "247", "email": "abc@xyz.com", }Cómo consultar como 'where uid = 247' que está presente en este objeto json.
Si la columna userDetails es una cadena JSON válida, puede usar la función json_extract() :
select * from user where json_extract(userDetails, '$.uid') = '247' Si no puede usar la extensión JSON1 de SQLite, puede hacerlo tratando a userDetails como una cadena normal y usando el operador LIKE :
select * from user where ',' || replace(replace(replace(userDetails, '{', ''), '}', ''), ' ', '') || ',' like '%,"uid":"' || '247' ||'",%' ¿Reemplazar el ? marcador de posición con la identificación que busca, como '247' .
Vea una demostración simplificada.