Змінні в mysql

MySQL підтримує змінні з іменами виду @ ім'я_змінної. Ім'я змінної може складатися з алфавітно-цифрових символів поточного набору, а також з _, $ і.

Змінні не повинні бути ініційовані. Вони містять NULL за замовчуванням і можуть зберігати ціле число, реальне або строкове значення. Всі змінні для поточного сеансу зв'язку будуть звільнені, коли сеанс зв'язку з сервером буде завершено. Всі змінні застосовуються лише до активного сеансу зв'язку. В інших сеансах можуть використовуватися змінні з тими ж самими іменами, але вони будуть вже самі по собі.

Ви можете встановлювати змінну через виклик SET:

А також встановлювати змінну в вираженні @variable: = expr, напрі¬мер так:

Тут треба використовувати синтаксис. = Тому, що символ = вже зарезервовано для порівнянь.

Змінні користувача можуть застосовуватися там, де допускаються вираження. Зверніть увагу, що в даний час вони не використовуються в контекстах, де явно потрібно число, наприклад в реченні LIMIT виклику SELECT.

В інструкції SELECT кожен вираз обчислено тільки тоді, коли воно надіслано користувачеві. Це означає, що в GROUP BY або ORDER BY ви не можете звернутися до вираження, яке включає змінні, встановлені в SELECT. Наприклад, така інструкція НЕ буде працювати, як ви очікуєте:

SELECT (@aa: = id) AS а, (@ аа + 3) AS b FROM table_name HAVING b = 5;

Причина: @aa буде містити не значення поточного рядка, а значення id попередньої прийнятої рядки.

Схожі статті