sql >> Database >  >> RDS >> Mysql

Hoe waarden op te halen die zijn opgeslagen in JSON-array in MySQL-query zelf?

De REGEXP functie retourneert gewoon 0 of 1. U zult andere tekenreeksfuncties moeten gebruiken.

Probeer dit:substr(misc,locate('group_id',misc)+11,5) as Misc . Maar dat veronderstelt dat group_id altijd 5 tekens heeft.

Dus dit is beter:substring_index(substr(misc,locate('group_id',misc)+char_length('group_id')+3),'"',1) as Misc .

Hier is een viool om te laten zien dat het werkt:http://sqlfiddle.com/#!2/ ea02e/15

BEWERKEN U kunt de +3 . verwijderen magisch getal door de dubbele aanhalingstekens en dubbele punt in de tekenreeksen op te nemen, zoals dit:substring_index(substr(misc,locate('"group_id":"',misc)+char_length('"group_id":"')),'"',1) as Misc



  1. Hoe maak je een SQL-zoekopdracht krachtiger?

  2. SQL-query met IN met een lijst erg traag

  3. Meerdere verzendingen van e-mail met bijlage - opnieuw posten

  4. SQL Kan geen tabel maken (errno:150)