ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Переменная SELECT INTO в MySQL

Как скопировать базу данных MySQL

Описание: в этой статье вы узнаете, как использовать переменную SELECT INTO в MySQL для хранения результатов запроса в переменных.

 

Синтаксис переменной SELECT INTO в MySQL

Чтобы сохранить результат запроса в одной или нескольких переменных , используйте синтаксис переменной SELECT INTO:

SELECT
c1, c2, c3, ...
INTO
@v1, @v2, @v3,...
FROM
table_name
WHERE
condition;

 

В этом синтаксисе:

Количество переменных должно совпадать с количеством столбцов или выражений в списке выбора. Кроме того, запрос должен возвращать ноль или одну строку.

Если запрос не возвращает строк, MySQL выдает предупреждение об отсутствии данных и значение переменных остается неизменным.

Если запрос возвращает несколько строк, MySQL выдает ошибку. Чтобы запрос всегда возвращал максимум одну строку, используйте условие LIMIT 1, чтобы ограничить результирующий набор одной строкой.

 

Примеры переменной SELECT INTO в MySQL

Мы будем использовать таблицу customers в примере базы данных для демонстрации.

Переменная SELECT INTO в MySQL

 

Пример одной переменной SELECT INTO в MySQL

Следующий оператор получает город клиента с номером 103 и сохраняет его в переменной @city:

SELECT
city
INTO
@city
FROM
customers
WHERE
customerNumber = 103;

 

 

Следующий оператор отображает содержимое переменной @city:

SELECT
@city;

 

Пример нескольких переменных SELECT INTO в MySQL

Чтобы сохранить значения из списка выбора в несколько переменных, вы разделяете переменные запятыми. Например, следующий оператор находит город и страну клиента с номером 103 и сохраняет данные в двух соответствующих переменных @city и @country:

SELECT
city,
country
INTO
@city,
@country
FROM
customers
WHERE
customerNumber = 103;

 

Следующий оператор показывает содержимое переменных @city и @country:

SELECT
@city,
@country;

 

Переменная SELECT INTO в MySQL

 

Пример нескольких строк SELECT INTO в MySQL

Следующая инструкция вызывает ошибку, потому что запрос возвращает несколько строк:

SELECT
creditLimit
INTO
@creditLimit
FROM
customers
WHERE
customerNumber > 103;/
 

Вот вывод:
Error Code: 1172. Result consisted of more than one row

 

Чтобы исправить это, вы используете следующее предложение LIMIT 1:

SELECT
creditLimit
INTO
@creditLimit
FROM
customers
WHERE
customerNumber > 103
LIMIT1;

 

В этой статье вы узнали, как использовать синтаксис переменной SELECT INTO в MySQL для хранения результата запроса результата в одной или нескольких переменных.

Exit mobile version