Mysql Не работает запрос в постере ?

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
В первом экшене нужно вставить параметры БД
А толку.
У меня вот нет БД с json полями

Есть возможность сделать бекап БД нескольких строк - простых и с json?
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Есть возможность сделать бекап БД нескольких строк - простых и с json?
Сделал бэкап таблицы. В таблице только одна колонка типа json. Как только изменяю тип на text запрос отрабатывает норм.
 

Вложения

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
в Mysql для строки нет типа данных - json, поэтому и ошибка при обращении.
Хранить данные в виде json - можно, но не правильно - сложно делать выборки по значению строк
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
в Mysql для строки нет типа данных - json, поэтому и ошибка при обращении.
ничего не понимаю ( В navicat ведь есть возможность выбрать тип данных json http://prntscr.com/mbn3bb и запрос к таблице выполняется http://prntscr.com/mbn7a7

Вот тут описывается тип столбца json https://dev.mysql.com/doc/refman/8.0/en/json.html

Вот результат выполнения запроса
Код:
SET @jSON := '{"asin": 1, "parentasin": 1, "titleReviews": 1}';
SELECT JSON_EXTRACT(@jSON, '$.titleReviews');
который вообще ни к одной таблице не обращается: http://prntscr.com/mbon52

Этот же запрос делаю в зенке - имею ошибку. Так КАКОГО ... розового слоника?????
 
Последнее редактирование:

Vasalex

Client
Регистрация
27.09.2016
Сообщения
263
Благодарностей
19
Баллы
18

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 233
Благодарностей
5 846
Баллы
113
Сделал бэкап таблицы. В таблице только одна колонка типа json. Как только изменяю тип на text запрос отрабатывает норм.
Наша либа по работе с MySQL вываливает ошибку в запросе "Unknown data type" просто она не вкурсе что может быть json в полях
можно так писать:
Код:
SET @jSON := '{"asin": 1, "parentasin": 1, "titleReviews": 1}'; SELECT CONVERT(JSON_EXTRACT(@jSON, '$.titleReviews'), CHAR CHARACTER SET utf8);
так работает
 

Vasalex

Client
Регистрация
27.09.2016
Сообщения
263
Благодарностей
19
Баллы
18
В логе же пишется ошибка ?
или нет?
Мда. В общем невнимательность и алкоголь виноваты. Наверное больше алкоголь. Прошерстил весь шаб и заметил что в операции insert одинарна и двойная кавычка в одном параметре. Исправил и всё заработало. Не советую, даже выпив банку пива, лезть в кодинг на зенку ;-) Можно такого наворотить, что потом фиг поймёшь, особенно если шаб огромный...
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Наша либа по работе с MySQL вываливает ошибку в запросе "Unknown data type" просто она не вкурсе что может быть json в полях
можно так писать:
Код:
SET @jSON := '{"asin": 1, "parentasin": 1, "titleReviews": 1}'; SELECT CONVERT(JSON_EXTRACT(@jSON, '$.titleReviews'), CHAR CHARACTER SET utf8);
так работает
Спасибо, попробую. А в 5.27 версии подправили либу?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 233
Благодарностей
5 846
Баллы
113

Packman

Client
Регистрация
21.11.2019
Сообщения
4
Благодарностей
1
Баллы
3
Решение пришло откуда не ждали))
@svaminar делайте все так как делали сначала (т.е. "Использовать параметры в запросе" не ставьте)
и Ваш запрос заработает если в строку подключения добавите allowuservariables=True
а как добавить ? не даёт выбрать список выпадает ... но результат не закрепляется за строкой. Удалить и добавить тоже не получается ( . Добавил новый параметр allowuservariables=True в таком виде - но не помогло .
75802
----
пытаюсь выполнить запрос с переменной и вернуть её
SQL:
UPDATE `accounts` SET `status` = 'work' WHERE `accounts`.`id` = (@mio:=(SELECT id FROM accounts WHERE id =18 and `status` LIKE 'ready' ));
SELECT @mio;
Как вообще победить работу с переменным @:= в запросе MySqlClient
 

Besedi

Client
Регистрация
04.03.2019
Сообщения
234
Благодарностей
40
Баллы
28
LOCK TABLES profiles WRITE;
INSERT INTO `profiles`(`dir_path`, `name`, `time`, `status`) VALUES ('{-Variable.var1-}','{-Variable.var2-}','{-Variable.time_now-}','lock');
SELECT * FROM `profiles` WHERE `name` = '{-Variable.var2-}';
UNLOCK TABLES;

Подскажет кто, почему в прожектмейкере работает, при запуске в зеннопостере не работает, просто не выполняется запрос. Вторые сутки голову ломаю, в логах ничего нет, настройки самого mysql разные перепробовал. Не в какую не хочет работать INSERT INTO
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)