powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
10 сообщений из 10, страница 1 из 1
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852563
hysgvarna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE DEFINER=`xxx`@`xxx` PROCEDURE `MUL`(lang varchar(2))
BEGIN

SELECT IFNULL
((SELECT JSON_EXTRACT(name1, "$.en")),(SELECT JSON_EXTRACT(name1, "$.ru")))text
FROM MUL_LANG;

END



В этом месте (name1, "$.en") нужно чтобы искалось не значение en, а значение переменной lang, как только не пробовал подставлять, не получается. Прошу помощи у гуру. Сам только учусь, благо есть возможность учиться на работе.
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852605
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hysgvarnaВ этом месте (name1, "$.en")Это место с точки зрения синтаксиса MySQL - полный бред.

hysgvarnaзначение переменной langНу и поставь её в запрос вместо этой непонятной хрени.

hysgvarna(SELECT JSON_EXTRACT(name1, "$.en"))Что такое name1? Откуда взялось?
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852653
hysgvarna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Стоп, данный синтаксис указан в официальной документации JSON_EXTRACT. Данный код рабочий, но не динамический.
Опишу данный код для ясности. На входе я хочу получать язык пользователя, на выходе он должен отдавать текст с учетом языка. Данная строка (name1, "$.en") выбирает язык выводимого текста. На данный момент я не могу использовать входные параметры, либо могу, но код нужно делать громоздким.
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852655
hysgvarna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,


hysgvarna
(SELECT JSON_EXTRACT(name1, "$.en"))
Что такое name1? Откуда взялось?

name1 - это название столбца
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852712
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hysgvarnaданный синтаксис указан в официальной документации JSON_EXTRACT.И где же там двойная кавычка-то, в документации?

hysgvarnaname1 - это название столбцаВ Вашем коде - НЕТ. Там в скобках запрос, не имеющий секции FROM - следовательно, никаких полей там не может быть в принципе.

hysgvarnaНа входе я хочу получать язык пользователя, на выходе он должен отдавать текст с учетом языка. Т.е. если есть - возвращаем переданный язык, иначе русский, верно я понимаю?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE 
DEFINER=`xxx`@`xxx` 
PROCEDURE `mul`(lang VARCHAR(2))
BEGIN
    SELECT COALESCE( JSON_EXTRACT(name1, CONCAT('$.', lang)), 
                     JSON_EXTRACT(name1, '$.ru') ) text
    FROM mul_lang;
END

Хотя в упор не понимаю, нахрена для такой мелочи - один запрос! - огород городить с процедурой.
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852756
hysgvarna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinahysgvarnaданный синтаксис указан в официальной документации JSON_EXTRACT.И где же там двойная кавычка-то, в документации?

вот
https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html
но на некоторых ресурсах и одинарная стоит, но в целом и так работает.

hysgvarnaname1 - это название столбцаВ Вашем коде - НЕТ. Там в скобках запрос, не имеющий секции FROM - следовательно, никаких полей там не может быть в принципе.
Вывод данной программы был корректен, хотя я понимаю о чем вы.

hysgvarnaНа входе я хочу получать язык пользователя, на выходе он должен отдавать текст с учетом языка. Т.е. если есть - возвращаем переданный язык, иначе русский, верно я понимаю?
Верно


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE 
DEFINER=`xxx`@`xxx` 
PROCEDURE `mul`(lang VARCHAR(2))
BEGIN
    SELECT COALESCE( JSON_EXTRACT(name1, CONCAT('$.', lang)), 
                     JSON_EXTRACT(name1, '$.ru') ) text
    FROM mul_lang;
END

Хотя в упор не понимаю, нахрена для такой мелочи - один запрос! - огород городить с процедурой.
Это решение будет применено для мультиязычности на большом сайте.
В любом случае спасибо вам большое, очень помогли, программа стала работать корректно. совсем забыл про конкатенацию.
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852778
hysgvarna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hysgvarna,

или лучше использовать этот вариант https://toster.ru/q/222406 ???
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852784
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hysgvarnaЭто решение будет применено для мультиязычности на большом сайте.Тогда разумнее делать функцию, которой передаётся термин (слово в предопределённом языке либо его индекс), а также желаемый язык - и она возвращает этот термин либо в желаемом языке, либо, при отсутствии, в дефолтном. Так появляется хотя бы какой-то смысл... а процедура - она ни о чём. Её даже как источник данных в запросе нельзя использовать - тупо запрашивать слова по одному... Хотя если в процедуру передавать массив слов сразу для всех элементов текущей страницы - может, и прокатит.
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852806
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю... что делают в Вашем коде лишние SELECT ?
...
Рейтинг: 0 / 0
Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
    #39852841
hysgvarna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Я 3 день изучаю mysql, select убрал
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по синтаксису JSON_EXTRACT. Значение поиска в строке нужно сделать динамическим.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]