MySQL में गणना के परिणाम को एक उपनाम (alias) देकर उसी क्वेरी में पुनः उपयोग करें।
सिंटैक्स
SELECT column_name, expression AS alias_name, (SELECT alias_name) * other_column FROM table_name;
उदाहरण
टेबल बनाना
mysql> create table AliasDemo ( -> Id int -> ); Query OK, 0 rows affected (0.52 sec)
रिकॉर्ड डालना
mysql> insert into AliasDemo values(20); mysql> insert into AliasDemo values(30); mysql> insert into AliasDemo values(40);
उपनाम के साथ गणना
mysql> select Id, 100 as MyNumber, (select MyNumber)*Id as MultiplyWith100 from AliasDemo;
+------+----------+-----------------+ | Id | MyNumber | MultiplyWith100 | +------+----------+-----------------+ | 20 | 100 | 2000 | | 30 | 100 | 3000 | | 40 | 100 | 4000 | +------+----------+-----------------+
एकल निष्पादन में (टेबल के बिना)
mysql> select 100 as MyNumber, (select MyNumber)*10 as MultiplyWith100;
+----------+-----------------+ | MyNumber | MultiplyWith100 | +----------+-----------------+ | 100 | 1000 | +----------+-----------------+
व्याख्या
100 as MyNumber— 100 को 'MyNumber' उपनाम देता है(select MyNumber)— उसी क्वेरी में उपनाम को संदर्भित करता है- यह सबक्वेरी के रूप में काम करता है
बेहतर/आधुनिक तरीका (MySQL 8.0+ CTE)
WITH calc AS ( SELECT 100 as MyNumber ) SELECT MyNumber, MyNumber * 10 as MultiplyWith100 FROM calc;
उपनाम के सामान्य उपयोग
-- कॉलम उपनाम SELECT first_name AS name, last_name AS surname FROM users; -- तालिका उपनाम (JOIN में उपयोगी) SELECT u.name, o.amount FROM users u JOIN orders o ON u.id = o.user_id; -- गणना उपनाम SELECT price * quantity AS total, (price * quantity) * 0.18 AS tax FROM order_items;
नियम
- उपनाम में स्पेस होने पर बैकटिक या कोट्स उपयोग करें:
AS `My Name` - WHERE क्लॉज में उपनाम उपयोग नहीं कर सकते (HAVING या बाहरी क्वेरी में उपयोग करें)
- GROUP BY, ORDER BY में उपनाम उपयोग कर सकते हैं