Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में उसी SELECT स्टेटमेंट में एलियास के मान का उपयोग कैसे करें

यूजर-डिफाइंड वेरिएबल के साथ SELECT में एलियास मान पुनः उपयोग करना

MySQL में आप उसी SELECT स्टेटमेंट में कॉलम एलियास को सीधे रेफर नहीं कर सकते। इसके बजाय यूजर-डिफाइंड वेरिएबल (@variable) का उपयोग करें।

सिंटैक्स:

SELECT @yourAliasName := CURDATE() AS anyAliasName,
       CONCAT('yourValue.', yourColumnName, ' yourValue', @yourAliasName) AS anyAliasName
FROM yourTableName;

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    Name VARCHAR(40)
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable VALUES ('John Smith');
mysql> INSERT INTO DemoTable VALUES ('Chris Brown');
mysql> INSERT INTO DemoTable VALUES ('David Miller');
mysql> INSERT INTO DemoTable VALUES ('John Doe');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+--------------+
| Name         |
+--------------+
| John Smith   |
| Chris Brown  |
| David Miller |
| John Doe     |
+--------------+

उसी स्टेटमेंट में एलियास मान का उपयोग करने के लिए क्वेरी:

mysql> SELECT @todayDate := CURDATE() AS todayDate,
    CONCAT('Mr.', Name, ' The current Date is=', @todayDate) AS Result
    FROM DemoTable;

आउटपुट:

+------------+------------------------------------------------+
| todayDate  | Result                                         |
+------------+------------------------------------------------+
| 2019-09-08 | Mr.John Smith The current Date is=2019-09-08   |
| 2019-09-08 | Mr.Chris Brown The current Date is=2019-09-08  |
| 2019-09-08 | Mr.David Miller The current Date is=2019-09-08 |
| 2019-09-08 | Mr.John Doe The current Date is=2019-09-08     |
+------------+------------------------------------------------+

व्याख्या:

  • @todayDate := CURDATE(): यूजर-डिफाइंड वेरिएबल @todayDate को वर्तमान तारीख असाइन करता है और उसे todayDate एलियास के साथ लौटाता है
  • CONCAT(..., @todayDate): उसी पंक्ति में वेरिएबल @todayDate का मान उपयोग करता है
  • वेरिएबल सेशन-स्कोप्ड होता है और कनेक्शन के दौरान बना रहता है

महत्वपूर्ण:

  • एलियास todayDate को सीधे CONCAT(..., todayDate) में उपयोग नहीं कर सकते - एरर देगा
  • वेरिएबल असाइनमेंट := ऑपरेटर का उपयोग करता है (तुलना = से अलग)
  • मूल्यांकन क्रम: SELECT सूची में बाएं से दाएं

वैकल्पिक - सबक्वेरी/डिराइव्ड टेबल:

SELECT todayDate, CONCAT('Mr.', Name, ' The current Date is=', todayDate) AS Result
FROM (SELECT CURDATE() AS todayDate, Name FROM DemoTable) AS sub;

यह तरीका अधिक मानक SQL है और वेरिएबल्स पर निर्भर नहीं करता।

  1. - MySQL तालिका में प्रत्येक मान के लिए अधिकतम (MAX) कैसे चुनें?

    MySQL में GROUP BY और MAX() का उपयोग करके प्रत्येक समूह (जैसे देश) के लिए अधिकतम मान (जैसे जनसंख्या) प्राप्त किया जा सकता है। उदाहरण देश जनसंख्या तालिका: mysql> CREATE TABLE DemoTable (CountryName VARCHAR(20), Population INT); mysql> INSERT INTO DemoTable VALUES (US, 560), (UK, 10090), (UK, 8

  1. - MySQL कॉलम में प्रत्येक पंक्ति के समान मान की गिनती करें?

    प्रत्येक पंक्ति के समान मान की गिनती के लिए COUNT(*) का उपयोग GROUP BY क्लॉज के साथ करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1818 ( Id int, Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> ins

  1. - Python में MySQL का उपयोग करके SELECT DISTINCT स्टेटमेंट समझाया गया

    SQL टेबल के अंदर, कॉलम में आमतौर पर डुप्लिकेट मान होते हैं। हमें कभी-कभी अपने टेबल में किसी कॉलम में मौजूद केवल विशिष्ट या अलग मान प्राप्त करने की आवश्यकता होती है क्योंकि डुप्लिकेट मान क्वेरी द्वारा लौटाए गए परिणामों का विश्लेषण करना मुश्किल बना देते हैं। उदाहरण: मान लीजिए, हमारे पास Customers नाम