Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: поиск внутри json_data на sql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Соц Сеть
Отправлено: 11 Июля, 2018 - 10:49:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Добрый день друзья , подскажите пожалуйста есть ли способ выполнять поиск по json дате в sql ?
есть таблица json_data в нем поля id и data
[{"period":"2016-2018","lesson":"english"},\r\n{"period":"2017-2018","lesson":"france"}]
как можно получить именно тот id для которого lesson = france ?
я почитал о json_extract в mysql но, как то не работает .
заранее спасибо.
 
 Top
armancho7777777 Супермодератор
Отправлено: 11 Июля, 2018 - 14:37:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (sql):
скопировать код в буфер обмена
  1. SELECT id
  2.   FROM json_data
  3.  WHERE JSON_CONTAINS(`data`, JSON_OBJECT("lesson", "france")) > 0;
  4.  
  5. -- Or
  6.  
  7. SELECT id
  8.   FROM json_data
  9.  WHERE JSON_SEARCH(`data`, "one", "france", NULL, "$[*].lesson") IS NOT NULL;
  10.  
  11. -- Or
  12.  
  13. SELECT JSON_EXTRACT(DATA, "$[*].lesson") AS lessons
  14.   FROM json_data
  15. HAVING JSON_SEARCH(lessons, "one", "france") IS NOT NULL;
 
 Top
Соц Сеть
Отправлено: 11 Июля, 2018 - 16:02:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




отлично , сработала , просто есть одна проблема , я не смог выполнить такую функцию ,
в json data есть еще один элемент price в одном 15000 в другом 20000
[{"period":"2016-2018","lesson":"english",'price':15000},\r\n{"period":"2017-2018","lesson":"france",'price':20000}]
мне надо where data->price > 14000 and data->price <21000
вот такой запрос как можно реализовать можете знаете ?


Отредактировано модератором: armancho7777777, 13 Июля, 2018 - 16:26:55
 
 Top
armancho7777777 Супермодератор
Отправлено: 11 Июля, 2018 - 17:09:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Соц Сеть пишет:
знаете ?

Знаю. Создать таблицу и записывать эти данные туда, а не в JSON.
 
 Top
Соц Сеть
Отправлено: 11 Июля, 2018 - 17:42:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




armancho7777777 пишет:
Соц Сеть пишет:
знаете ?

Знаю. Создать таблицу и записывать эти данные туда, а не в JSON.

такой вариант я тоже знаю , мне интересно можно ли реализовать такой запрос ?
 
 Top
armancho7777777 Супермодератор
Отправлено: 11 Июля, 2018 - 18:08:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Да конечно можно.
Гвозди, микроскопом, забивать тоже можно.

SQL function MATCH_PRICE (Отобразить)

CODE (sql):
скопировать код в буфер обмена
  1.  
  2. SELECT id, `data`
  3.   FROM json_data
  4.  WHERE JSON_SEARCH(`data`, "one", "france", NULL, "$[*].lesson") IS NOT NULL
  5.    AND MATCH_PRICE(JSON_EXTRACT(`data`, "$[*].price"), 14000, 21000) > 0;
  6.  
 
 Top
Соц Сеть
Отправлено: 11 Июля, 2018 - 19:58:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




[quote=armancho7777777][/quote]
Ха-ха да отлично , то что надо , спасибо большое )
 
 Top
armancho7777777 Супермодератор
Отправлено: 12 Июля, 2018 - 13:37:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Пожалуйста.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB