powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SET is deprecated как с эти бороться?
19 сообщений из 44, страница 2 из 2
SET is deprecated как с эти бороться?
    #39964493
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
далее, почему в записи нельзя использовать одну переменную- порядок не гарантирован
я ожидал этого замечания, могу сказать что это обработка вложенного запроса и порядок гарантирован :)
Alex_Ustinov
меньше скрывай смысла больше получишь ответов
к сожалению это не мои структуры и показать много не могу.
просто приведённое решение решает одну из многих задач в этом запросе.

тут ещё такое что это запрос из хранимки, а при использования в хранимке такого предупреждения не возникает ... или ide его не обрабатывает?
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964518
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадябыло бы не плохо, вот только это приходит как данность из стороннего сервиса писал выше - никто не ставит автоапдейт МайСкуля тем более системы под проект. В любом случае, как говорил выше - переустановить на Марию - дело Замены масла в двигателе авто.
Вадявопрос не в том, а в том как можно реализовать в новых версиях.
пока есть время до выхода 9...
я и хочу начать перерабатывать.показывай что ты хочешь перерабатывать.
авторпросто приведённое решение решает одну из многих задач в этом запросе.
никакого решения не видно. Показывай смысл запроса.
Интересно зачем в Дебиан менять дефолтный стек MariaDB на уже давно Оракловый MySQL.
авторпривычка. Нет такого в перечне привычек человека. Купить VW и сразу поменять двигатель на Skoda.
Код: sql
1.
2.
Есть нюанс - неизвестно насколько долго Мария будет держать фичи старого MySQL. Но по дефолту - это их принцип.
-- поставишь на Мария - а она тот же фортель выкинет....

специально вставил нюанс - ну того ответа и ожидал
Код: sql
1.
2.
Но еще раз - MariaDB - это лучший вариант. Поэтому и включают в дистрибутивы по дефолту.
-- спорное утверждение, но имеет право на существование.
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964526
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тяжело в перехлесте писать
авторНо еще раз - MariaDB - это лучший вариант. Поэтому и включают в дистрибутивы по дефолту.
-- спорное утверждение, но имеет право на существование. это факт, а не утверждение.
Большинство Линукс дистр-ов давно включили MariaDB, а не MySQL. ( LibreOffice а не OpenOffice и т.д.)
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964529
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя ожидал этого замечания, могу сказать что это обработка вложенного запроса и порядок гарантирован :)подробнее, с примерами
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964533
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторэто баг ide или это фича mysql ? выпилить из "простых запросов" , но оставив в запросах выполняемых в хранимках?а в консоли что показывает, трудно проверить, или действительно где то всплыло...
Код: plaintext
1.
2.
3.
mysql> select version();
| version() |
| 8.0.20    |
проверяемmysql> select @a:=@a+1 as id, t.id from t100 as t, (select @a:=0) as s limit 5;
| id | id |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
5 rows in set, 2 warnings (0.00 sec)
-- пам-парам-парам-пампам - все работает!
mysql> show warnings;
+---------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1287 | Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'. |
| Warning | 1287 | Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'. |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964567
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

ещё раз - переход от mysql - это отдельная тема. и не этого топитка.
Alex_Ustinov
подробнее, с примерами

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select 
o.field_time as time,
o.field_c as c,
case 
when o.field_c='c2' then @f:= o.field_time
when o.field_c='c5' then @f := fo.ield_time - @f
else null
end as f,
if(o.c='c5',@f,null) as t from
(select  * from tab order by field_time) as o


Alex_Ustinov
а в консоли что показывает, трудно проверить, или действительно где то всплыло...
в данном случае в консоли будет просто констатация .
разработчики ide, мне кажется , должны эти тонкости лучше знать.
(конечно, в orarle будет правильнее спросить, но....)
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964816
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз - переход на Марию - плевое дело.
просто у твоего страха глаза велики. можно элементарно тестить на своей машине. Никто не говорит что сразу на продакшен.
И отдельный топик не нужен

что за запрос ты показал.. , переделай без переменных, не нужны они там и больше не вспоминай об этом запросе.
откуда @f берется, если значение не присвоено - то это NULL
Код: sql
1.
when o.field_c='c5' then @f := fo.ield_time - @f 

.....
вот консоль и констатиреет, что пока это неважно.
а GUI показывают и ошибки и предупреждения, работа у них такая
что там ты у Оракла хотел спросить так и не понял
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964824
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
что за запрос ты показал.. , переделай без переменных, не нужны они там и больше не вспоминай об этом запросе.
я бы с удовольствием переделал, но не знаю как
Alex_Ustinov
откуда @f берется, если значение не присвоено - то это NULL
мне не важно что в @f до события с2.
statetimec1t1c2t2nullt3nullt4c4t5c3t6c5t7c2t8с5t9
как вычислить время между с2 и с5?
все остальные строки обязательны к выводу
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964879
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
как вычислить время между с2 и с5?
И куда именно его поместить? в дополнительное поле каждой записи? или только у записи с2 или с5, а остальным там присвоить NULL?
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964887
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
И куда именно его поместить? в дополнительное поле каждой записи? или только у записи с2 или с5, а остальным там присвоить NULL?
результат можно в доп поле

а для развития - я б хотел увидеть все варианты

LATERAL может помочь?
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964913
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа для развития я б хотел увидеть все варианты такое подозрение, что ты опять ничего не пытался сделать.
Покажи свой вариант с LEFT JOIN
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964926
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
такое подозрение, что ты опять ничего не пытался сделать.
Покажи свой вариант с LEFT JOIN
предложи, у меня не получилось достичь требуемого
проблема в том, что необходимо запомнить где-то значение из строки -как это сделать?
чем может помочь вариант с вариант с LEFT JOIN?
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964953
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

показывай что не получилось...странная риторика у тебя последнее время - "у меня не получилось но я хочу чтобы вы ребята мне выложили кучу вариантов для развития".
Как всегда предлагает Акина - фиддл хоть выложи, чтобы было понятно что есть и что ты хочешь.
Когда нужна исходная таблица "целиком", и необходимо что-то "пристыковать справа" - это есть LEFT JOIN. Условия соединения пишем в ON а не в WHERE, любые. Условия в WHERE отфильтруют и исходную таблицу. Ты уже сколько лет с MySQL, это базовые вещи SQL.

авторпроблема в том, что необходимо запомнить где-то значение из строки -как это сделать?Зачем запоминать? Откуда такой "Цикловой подход" перебора?
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964965
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,


Alex_Ustinov
Зачем запоминать? Откуда такой "Цикловой подход" перебора?

тут 22143310 "образец" данных
мне надо получить время между с2 и с5
чтоб это сделать надо из времени события с5 вычесть время события с2.
как получит в строке с событиями с5 время предыдущего события с2, что посчитать разницу
(ну и записать её в дополнительный столбец)
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964972
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

делать и думать сам не хочешь, я же все выше пояснил с LEFT JOIN
понятно что у тебя вариантов и не было, иначе показал бы
ну хорошо, я накидал смысл SQL "влоб", раз пишешь диссертацию - доделаешь сам, думать все равно придется
fiddle авторКогда нужна исходная таблица "целиком", и необходимо что-то "пристыковать справа" - это есть LEFT JOIN. Условия соединения пишем в ON а не в WHERE, любые. Условия в WHERE отфильтруют и исходную таблицу. Ты уже сколько лет с MySQL, это базовые вещи SQL.
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39964975
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
процитируем здесь
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create table pop(
id int(11) not null auto_increment,
state char(11),
ctime char(11),
PRIMARY KEY (`id`));
INSERT INTO pop(state,ctime) VALUES
('c1',	't1'),
('c2',	't2'),
(null,	't3'),
(null,	't4'),
('c4',	't5'),
('c3',	't6'),
('c5',	't7'),
('c2',	't8'),
('c5',	't9');
select * from pop;
select t_le.*, t_ri.id, t_ri.state, t_ri.ctime from 
pop as t_le left join pop as t_ri 
on t_le.state="c2" and t_ri.state="c5" and t_le.id<t_ri.id;

...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39965001
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

спасибо большое,
но вполне было достаточно написать что LEFT JOIN таблицу с собой по полям
остальное уж дошло бы
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39965154
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот не пойму, если
Код: sql
1.
2.
3.
case 
when o.field_c='c2' then @f:= o.field_time
when o.field_c='c5' then @f := fo.ield_time - @f

переделать на IF()
ТО можно вместо @f подставить не задумываясь этот IF() сюда
Код: sql
1.
if(o.c='c5',@f,null) as t 

и зачем огород городить
...
Рейтинг: 0 / 0
SET is deprecated как с эти бороться?
    #39965175
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
и зачем огород городить
ты совершенно прав, вот только если рассматривать этот кусок как готовый, но там ещё парочка условий, тут показано упрощено, для наглядности.
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SET is deprecated как с эти бороться?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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