उपयोगकर्ता-परिभाषित वेरिएबल का उपयोग करें
एक नया कॉलम जोड़ने के लिए जो प्रत्येक पंक्ति को सीरियल नंबर (1, 2, 3...) के रूप में गिनता है, आप MySQL में उपयोगकर्ता-परिभाषित वेरिएबल (@variable) का उपयोग कर सकते हैं।
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE addColumnToCountAsSerialNumber (
Id INT,
Name VARCHAR(20),
Age INT,
Salary INT
);
mysql> INSERT INTO addColumnToCountAsSerialNumber VALUES(10, 'John', 23, 8576); mysql> INSERT INTO addColumnToCountAsSerialNumber VALUES(12, 'Carol', 21, 4686); mysql> INSERT INTO addColumnToCountAsSerialNumber VALUES(9, 'Mike', 22, 38585); mysql> INSERT INTO addColumnToCountAsSerialNumber VALUES(15, 'Sam', 25, 38586); mysql> INSERT INTO addColumnToCountAsSerialNumber VALUES(20, 'Bob', 26, 43544); mysql> INSERT INTO addColumnToCountAsSerialNumber VALUES(39, 'Larry', 29, 485886);
मूल डेटा
+------+-------+------+--------+ | Id | Name | Age | Salary | +------+-------+------+--------+ | 10 | John | 23 | 8576 | | 12 | Carol | 21 | 4686 | | 9 | Mike | 22 | 38585 | | 15 | Sam | 25 | 38586 | | 20 | Bob | 26 | 43544 | | 39 | Larry | 29 | 485886 | +------+-------+------+--------+
क्वेरी: सीरियल नंबर कॉलम जोड़ना
mysql> SELECT @globalVar := @globalVar + 1 AS RowCount, tblColumns.*
FROM (SELECT @globalVar := 0) AS initializeGlobalVariable,
addColumnToCountAsSerialNumber tblColumns;
आउटपुट
+----------+------+-------+------+--------+ | RowCount | Id | Name | Age | Salary | +----------+------+-------+------+--------+ | 1 | 10 | John | 23 | 8576 | | 2 | 12 | Carol | 21 | 4686 | | 3 | 9 | Mike | 22 | 38585 | | 4 | 15 | Sam | 25 | 38586 | | 5 | 20 | Bob | 26 | 43544 | | 6 | 39 | Larry | 29 | 485886 | +----------+------+-------+------+--------+
व्याख्या
(SELECT @globalVar := 0)वेरिएबल को 0 से इनिशियलाइज़ करता है।@globalVar := @globalVar + 1प्रत्येक पंक्ति के लिए काउंटर बढ़ाता है।- परिणाम में
RowCountनामक एक नया कॉलम जुड़ जाता है।
नोट
MySQL 8.0+ में, आप ROW_NUMBER() OVER () विंडो फंक्शन का उपयोग कर सकते हैं जो अधिक मानक और विश्वसनीय है।