Per aggiungere la funzione json_extract nelle versioni di MySQL precedenti alla 5.7, che la supporta nativamente, si può ricorrere alle librerie udfs. Grazie a questa funzione, sarà possibile estrarre direttamente i dati di un array/oggetto JSON contenuto in un campo del database.
Accedere a MySQL e verificare qual è il path della cartella relativa ai plugins, eseguendo la query:
1 |
show variables like 'plugin_dir'; |
Dovrebbe visualizzare qualcosa del tipo /usr/lib/mysql/plugin. Bene, posizioniamoci nella cartella dei plugin, scarchiamo le librerie udf ed aggiungiamo la nuova funzione:
1 2 3 4 |
cd /usr/lib/mysql/plugin wget http://downloads.mysql.com/snapshots/pb/mysql-json-udfs-0.4.0/mysql-json-udfs-0.4.0-labs-json-udfs-linux-glibc2.5-x86_64.tar.gz tar xvf mysql-json-udfs-0.4.0-labs-json-udfs-linux-glibc2.5-x86_64.tar.gz cp -i mysql-json-udfs-0.4.0-labs-json-udfs-linux-glibc2.5-x86_64/libmy_json_udf_path.so . |
Creiamo la funzione json_extract eseguendo la query:
1 |
CREATE FUNCTION json_extract RETURNS string SONAME 'libmy_json_udf_path.so'; |
Per verificare che tutto funzioni, si può eseguire una query di test:
1 2 |
set @doc='{"JSON UDFs": {"version": "0.4.0", "functions": ["json_extract", "json_contains_key", "json_search"]}}'; select JSON_EXTRACT(@doc, '$.JSON UDFs.version'); |
enjoy!
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta