Назначение пользовательских переменных на основе результатов запроса расширяет возможности манипулирования базой данных. В этой статье исследуется метод достижения этого в MySQL, не прибегая к вложенным запросам.
Вопреки распространенному мнению, назначение пользовательских переменных может быть интегрировано непосредственно в запросы. Оператором присваивания для операторов SET является = или :=. Однако := необходимо использовать внутри других операторов, поскольку = зарезервировано для сравнений.
Чтобы проиллюстрировать этот метод, предположим, что USER и GROUP уникальны. Следующая последовательность запросов демонстрирует эту функциональность:
SET @user := 123456; SELECT @group := `group` FROM USER WHERE user = @user; SELECT * FROM USER WHERE `group` = @group;
Используя пример таблицы со следующими данными:
CREATE TABLE user (`user` int, `group` int); INSERT INTO user VALUES (123456, 5); INSERT INTO user VALUES (111111, 5);
Запрос дает следующий результат:
-------- ------- | user | group | -------- ------- | 123456 | 5 | | 111111 | 5 | -------- -------
В качестве альтернативы можно использовать следующий синтаксис:
SET @user := 123456; SELECT `group` FROM user LIMIT 1 INTO @group; SELECT * FROM user WHERE `group` = @group;
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3