Друзья, вопрос по поводу переменных в 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 ответов

16 просмотров

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

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

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

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Как думаете через какой сервис они верифицируют?
inc.
5
Добрый день! Подскажите, каким сборщиком фронта для OctoberCMS кто пользуется? Я имею ввиду сборщики, с которыми можно работать по стандартной схеме директорий октября. Я испо...
Николай Афанасенко
2
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
Карта сайта