Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 824 Просмотров
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Здравствуйте! Вопрос такой, можно ли средствами Joomla перебирать базы данных если значения в бд записаны в JSON? Поиск не помогает!
Спасибо!
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
Re: Выборка по Json данным из БД
« Ответ #1 : 20.03.2019, 14:38:42 »
Можно искать средствами БД в жсон:
Код
WHERE `jsonfield`->'$.price' = 50
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Re: Выборка по Json данным из БД
« Ответ #2 : 20.03.2019, 15:56:25 »
Можно искать средствами БД в жсон:
Код
WHERE `jsonfield`->'$.price' = 50

Да похоже только так, Joomla пока не готова к такому. Теперь другой вопрос будет ли такая запись в скором времени депрекатед)
Спасибо!
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
Re: Выборка по Json данным из БД
« Ответ #3 : 20.03.2019, 16:00:50 »
Да похоже только так, Joomla пока не готова к такому. Теперь другой вопрос будет ли такая запись в скором времени депрекатед)
Спасибо!
Для фильтрации средствами php (джумлой) придется сперва считать все строки, в цикле декодировать жсон и по условию удалять лишние элементы массива.

mysql вроде б не так давно только научился искать по json-полям, поэтому врядли будут сразу же выпиливать. Другой вопрос, что это (скорее всего) очень неоптимальный поиск... Но, пожалуй, через распаковку в пхп - еще более неоптимально.
« Последнее редактирование: 20.03.2019, 16:04:35 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
Re: Выборка по Json данным из БД
« Ответ #4 : 20.03.2019, 16:07:14 »
В довесок:
Код
WHERE `jsonfield`->'$.price' = 5           // По полю первого уровня вложенности
WHERE `jsonfield`->'$.*.price' = 5         // По полю второго (и более?) уровня вложенности
WHERE `jsonfield`->'$.price' IS NULL       // Если поле в json отсутствует
WHERE `jsonfield`->'$.price' IS NOT NULL   // Если поле в json присутствует
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Re: Выборка по Json данным из БД
« Ответ #5 : 20.03.2019, 16:13:09 »
Через json_decode вообще не вариант если много записей и в каждой большой json. До этого делал дополнительную таблицу и через left_join делал фильтрацию, но насколько это "энергозатратно" не знаю, а тут вроде попроще получается и меньше писанины.
« Последнее редактирование: 20.03.2019, 16:19:11 от ghostcom »
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Re: Выборка по Json данным из БД
« Ответ #6 : 20.03.2019, 16:21:06 »
Код
$query = "SELECT * FROM #__table WHERE column->'$.a'=1";

Работает у меня только такое экранирование
*

ghostcom

  • Захожу иногда
  • 103
  • 1 / 0
Re: Выборка по Json данным из БД
« Ответ #7 : 20.03.2019, 16:31:59 »
Код
{
  "a": 1,
  "b": 2,
  "c": [3, 4],
  "d": {
    "e": 5,
    "f": 6
  }
}

Код
$.a         //    вернет 1
$.c        //     вернет [3, 4]
$.c[1]    //     вернет 4
$.d.e    //      вернет 5
$**.e   //       вернет [5]
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
Re: Выборка по Json данным из БД
« Ответ #8 : 20.03.2019, 16:56:00 »
Код
$query = "SELECT * FROM #__table WHERE column->'$.a'=1";

Работает у меня только такое экранирование

Имена полей и таблиц можно экранировать косыми апострофами (на букве Ё)
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Выборка по Json данным из БД
« Ответ #9 : 20.03.2019, 17:47:57 »
Можно искать средствами БД в жсон:
Код
WHERE `jsonfield`->'$.price' = 50
О. Любопытная фича.
Смотрю поддержка в MySQL 5.7.8+  и MariaDB 10.2+
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Выборка по Json данным из БД
« Ответ #10 : 20.03.2019, 22:18:17 »
поддержка в MySQL 5.7.8+  и MariaDB 10.2+
т.е. на большинсве хостов недоступна, ибо на большинстве мускул 5.6 и мария 5-я
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Выборка по Json данным из БД
« Ответ #11 : 20.03.2019, 22:32:30 »
т.е. на большинсве хостов недоступна, ибо на большинстве мускул 5.6 и мария 5-я
Мария разве не 10+?

Ну для клиентских расширений рановато, но на перспективу и для кастомных решений - уже можно использовать
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Выборка по Json данным из БД
« Ответ #12 : 21.03.2019, 15:35:21 »
Мария разве не 10+?
на шаредах - точно нет
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Выборка данных из Joomla 3.9 с помощью MySQL

Автор natsk2

Ответов: 2
Просмотров: 506
Последний ответ 02.10.2019, 13:36:28
от natsk2
Что за ?option=com_ajax&format=json

Автор Gerostrat

Ответов: 8
Просмотров: 2879
Последний ответ 31.08.2019, 01:18:17
от Septdir
Выборка из базы данных одновременно несколько полей

Автор alexey711

Ответов: 10
Просмотров: 613
Последний ответ 24.05.2019, 11:50:43
от alexey711
component/ajax/?format=json

Автор natashalina

Ответов: 5
Просмотров: 831
Последний ответ 15.11.2018, 12:52:28
от draff
Joomla 3.6.5 com_content params переписывается в пустой json с полями?

Автор pavelrer

Ответов: 0
Просмотров: 653
Последний ответ 28.10.2018, 11:30:30
от pavelrer