Переменные MySQL

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

 

Введение в пользовательские переменные MySQL

Иногда вы хотите передать значение из оператора SQL в другой оператор SQL. Для этого вы сохраняете значение в пользовательской переменной MySQL в первом операторе и ссылаетесь на него в последующих инструкциях.

Для создания пользовательской переменной вы используете формат @variable_name, в котором она variable_name состоит из буквенно-цифровых символов. Максимальная длина пользовательской переменной составляет 64 символа с MySQL 5.7.5

Пользовательские переменные не чувствительны к регистру. Это означает, что @id и @ID то же самое.

Вы можете назначить пользовательскую переменную определенным типам данных, таким как целое число, число с плавающей запятой, десятичное число, строка или NULL.

Пользовательская переменная, определенная одним клиентом, не видна другим клиентам. Другими словами, пользовательская переменная является специфичной для сессии.

Обратите внимание, что пользовательские переменные являются специфичным для MySQL расширением стандарта SQL. Они могут быть недоступны в других системах баз данных.

 

Переменная MySQL

Есть два способа присвоить значение пользовательской переменной.

Первый способ заключается в следующем:

SET @variable_name := value;

 

Вы можете использовать либо : =, либо = как оператор присваивания в операторе SET. Например, оператор присваивает число 100 переменной @counter.

SET @counter := 100;

 

Второй способ присвоения значения переменной — использование оператора SELECT. В этом случае вы должны использовать оператор присваивания : =, потому что в операторе SELECT в MySQL рассматривает оператор = как оператор равенства.

SELECT @variable_name := value;

 

После назначения вы можете использовать переменную в последующем операторе, где выражение разрешено, например, в предложении WHERE, операторе INSERT или UPDATE.

 

Примеры переменных MySQL

Следующий оператор получает самый дорогой продукт в таблице products и назначает цену пользовательской переменной @msrp:

SELECT

    @msrp:=MAX(msrp)

FROM

    products;

Переменные MySQL

 

Следующий оператор использует переменную @msrp для запроса информации о самом дорогом продукте.

SELECT

    productCode, productName, productLine, msrp

FROM

    products

WHERE

    msrp = @msrp;

 

Иногда вы хотите вставить строку в таблицу, получить последний идентификатор вставки и использовать его для вставки данных в другую таблицу. В этом случае вы можете использовать пользовательскую переменную для хранения самого последнего идентификатора, сгенерированного столбцом AUTO_INCREMENT, следующим образом.

SELECT @id:=LAST_INSERT_ID();

 

Пользовательская переменная может содержать только одно значение. Если оператор SELECT возвращает несколько значений, переменная будет принимать значение последней строки в результате.

SELECT

    @buyPrice:=buyprice

FROM

    products

WHERE

    buyprice > 95

ORDER BY buyprice;

Переменные MySQL

SELECT @buyprice;

Переменные MySQL

 

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



2019-12-21T23:59:29
База данных MySQL