Цель: – json_extract не существует ошибки.
У меня действительно есть тело сообщения.
< message type = "chat" to = "socialapp_233@22.52.258.256" from = "socialapp_6@22.52.258.256/9fs4kgn090" > < body > { "opponent_xmpp_id": "socialapp_233@22.52.258.256", "latest_message_id": "6233" } < /body><active>http:/ / jabber.org / protocol / chatstates < /active></message >
Я пытаюсь извлечь файл_и_и_и_и_и_и_и_и_и_и_и_и_и_и_и_е__ .
для этого я написал запрос, как показано ниже.
SELECT LEFT(ExtractValue( stanza, "//@from" ),LOCATE("@",ExtractValue( stanza, "//@from" )) - 1), LEFT(ExtractValue( stanza, "//@to" ),LOCATE("@",ExtractValue( stanza, "//@to" )) - 1), ExtractValue(stanza, "//body"), ExtractValue(stanza, "//@chattype"), TRIM(BOTH '"' FROM json_extract(ExtractValue(stanza, "//body"), '$.opponent_xmpp_id')) AS opponent_xmpp_id, json_extract(ExtractValue(stanza,"//body"),'$.latest_message_id') AS latest_message_id FROM ofOffline
вызывает ошибку
1305 – База данных FUNCTIONName.json_extract не существует
Как я выяснил, его поддержка в версии> MYsql 5.7.
Итак, есть ли какая-либо функция, которая выполняет аналогичную работу как json_extract в версии клиента MySQL: 5.5.52?
Версия клиента mysql не актуальна. Функциональность существует (или в вашем случае не существует) на сервере mysql. Таким образом, единственное, что имеет значение, это версия сервера mysql. И эта функциональность доступна только на сервере mysql 5.7 и далее. Обновление вашего клиента не решит проблему, вам необходимо обновить свой сервер.
Есть ли работа? да. Json_decode PHP
Это может работать, потому что ваш запрос не имеет предложения WHERE. Вы смотрите на весь стол. Таким образом, вы можете легко получить все эти данные и json_decode, а затем выполнить обработку в вашем PHP-коде. Это будет очень медленно, если у вас много данных.