web-dev-qa-db-fra.com

Postgresql json like requête

J'ai la table suivante appelée module_data. Actuellement, il a trois lignes d'entrées:

                id                               data
0ab5203b-9157-4934-8aba-1512afb0abd0 {"title":"Board of Supervisors Meeting","id":"1i3Ytw1mw98"}
7ee33a18-63da-4432-8967-bde5a44347a0 {"title":"Board of Supervisors Meeting","id":"4-dNAg2mn6o"}
8d71ca35-74eb-4751-b635-114bf04843f1 {"title":"COPD 101", "id":"l9O0jCR-sxg"}

Les données sont une colonne jsonb. J'essaie d'interroger les colonnes de données en utilisant like. Quelque chose comme ce qui suit:

SELECT * FROM module_data WHERE title LIKE '%Board%';

J'ai consulté le support jsonb et il ne semble pas y avoir d'opérateur similaire. Si quelqu'un a des conseils.

15
adviner

Si la colonne de données est de type texte, utilisez ->> lors de la distribution:

select * from module_data where data::json->>'title' like '%Board%'

Si c'est déjà json:

select * from module_data where data->>'title' like '%Board%'
31
Gurwinder Singh

Je pense que ça devrait être comme 

select * from module_data where data->>'$."title"' like '%Board%'

alors seulement cela a fonctionné pour moi. 

0
Karansing