Друзья, вопрос по поводу переменных в MySQL. Обнаружил два синтаксиса:



SELECT @average := ROUND(AVG(amount)) FROM book;
SET @poetry_id = (SELECT genre_id FROM genre WHERE name_genre = 'Поэзия');

По поводу ":=" и "=" нашел инф-ю в мануале: https://dev.mysql.com/doc/refman/8.0/en/user-variables.html —> они взаимозаменяемые

А вот по поводу разницы между SELECT и SET пытался загуглить что-то на уровне "mysql select vs set for variables" — но ничего не удалось найти, в мануале, вроде, тоже инф-и такой не нашел, поэтому обращаюсь к сообществу с вопросом: есть ли разница между SELECT и SET? Если нет, то почему разится синтаксис? Как по мне, синонимы сбивают с толку...

P.S. если что я новичок, только изучаю все это, фрагменты кода нашел в иных решениях, по ним и вопрос

1 ответов

7 просмотров

Разница между SELECT и SET в контексте переменных заключается в том, что SELECT используется для присвоения значения переменной на основе результата выполнения запроса, а SET используется для явного присвоения значения переменной. В вашем примере, SELECT используется для присвоения значения переменной @average, которое является результатом выполнения функции AVG(). А SET используется для явного присвоения значения переменной @poetry_id, которое является результатом выполнения подзапроса. Выбор между SELECT и SET зависит от того, каким образом вы хотите присвоить значение переменной. Если вы хотите использовать результат выполнения запроса для присвоения значения переменной, то используйте SELECT. Если вы хотите явно присвоить значение переменной, то используйте SET. Синтаксис ":=" и "=" в данном случае действительно взаимозаменяемы, но могут использоваться в зависимости от предпочтений программиста.

Похожие вопросы

Обсуждают сегодня

Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Ребят, а больше никто поработать не хочет? Кто свободен?
AIZ
4
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
знаешь как они вообще работают?
Akcium Сергей
3
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Карта сайта