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

MySQL में ROW_NUMBER() के समतुल्य का उपयोग करके पंक्ति संख्या कैसे जनरेट करें?


MySQL में उपयोगकर्ता-परिभाषित वेरिएबल का उपयोग करके ROW_NUMBER() अनुकरण करना

MySQL 8.0 से पहले ROW_NUMBER() विंडो फ़ंक्शन नहीं था। आप सत्र वेरिएबल का उपयोग करके पंक्ति संख्या जनरेट कर सकते हैं।

सिंटैक्स (MySQL 8.0 से पहले)

SELECT (@row_number := @row_number + 1) AS ROW_NUMBER, yourColumnName1, yourColumnName2
FROM yourTableName, (SELECT @row_number := 0) AS t;

उदाहरण

टेबल बनाएं:

mysql> create table RowNumberDemo (
    -> UserId int,
    -> UserName varchar(20)
    -> );

डेटा डालें:

mysql> insert into RowNumberDemo values(10, 'John');
mysql> insert into RowNumberDemo values(50, 'Carol');
mysql> insert into RowNumberDemo values(100, 'Sam');
mysql> insert into RowNumberDemo values(150, 'Mike');
mysql> insert into RowNumberDemo values(210, 'Bob');

पंक्ति संख्या जनरेट करें:

mysql> SELECT (@ROW_NUMBER := @ROW_NUMBER + 1) AS `ROW_NUMBER`, UserId, UserName
    -> FROM RowNumberDemo, (SELECT @ROW_NUMBER := 0) AS t;

परिणाम:

+------------+--------+----------+
| ROW_NUMBER | UserId | UserName |
+------------+--------+----------+
|          1 |     10 | John     |
|          2 |     50 | Carol    |
|          3 |    100 | Sam      |
|          4 |    150 | Mike     |
|          5 |    210 | Bob      |
+------------+--------+----------+

MySQL 8.0+ में विंडो फ़ंक्शन

SELECT ROW_NUMBER() OVER (ORDER BY UserId) AS ROW_NUMBER, UserId, UserName
FROM RowNumberDemo;

PARTITION BY के साथ

SELECT ROW_NUMBER() OVER (PARTITION BY Department ORDER BY Salary DESC) AS ROW_NUMBER, ...
FROM Employees;

महत्वपूर्ण नोट्स

  • पुराना वेरिएबल तरीका क्रम की गारंटी नहीं देता (ORDER BY जोड़ें)
  • विंडो फ़ंक्शन (MySQL 8.0+) मानक, तेज़ और अधिक शक्तिशाली हैं
  • RANK(), DENSE_RANK() भी उपलब्ध हैं
  1. - MySQL में IF() से खाली कॉलम के लिए कस्टम टेक्स्ट प्रदर्शित करें

    MySQL के IF() फ़ंक्शन का उपयोग करके खाली स्ट्रिंग वाले कॉलम के लिए कस्टम टेक्स्ट (जैसे Not Applicable) प्रदर्शित कर सकते हैं। सिंटैक्स IF(शर्त, सच_मान, झूठ_मान) उदाहरण 1. टेबल बनाएं CREATE TABLE DemoTable (FirstName VARCHAR(20)); 2. डेटा डालें (खाली स्ट्रिंग सहित) INSERT INTO DemoTable VALUES(

  1. - MySQL में LIKE ऑपरेटर को IN() की तरह कैसे उपयोग करें?

    MySQL में LIKE ऑपरेटर को IN() की तरह उपयोग करने के लिए COUNT(), IF() और LIKE का संयोजन उपयोग करें। यह पैटर्न मिलान की गणना करने के लिए उपयोगी है। उदाहरण परिदृश्य विषय कॉलम में MySQL, Java, MongoDB शब्दों की घटनाएं गिनना। तालिका और डेटा mysql> CREATE TABLE DemoTable (Subject VARCHAR(80)); mysql&

  1. - MySQL में खोज क्वेरी के लिए उपयुक्त डेटाबेस फ़ील्ड टाइप

    REGEXP_INSTR() फ़ंक्शन (MySQL 8.0+) स्ट्रिंग में उपस्ट्रिंग की स्थिति लौटाता है; 0 = नहीं मिला। select * from yourTableName where REGEXP_INSTR(yourColumnName, yourSearchValue); उदाहरण insert into demo64(name) values(John Smith), (John Doe), (Chris Brown), (David Miller), (Carol Taylor); John खोज