Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल पहले एन सकारात्मक पूर्णांक प्राप्त करने के लिए चयन करें

ऐसा लगता है कि आप जो चाहते हैं वह एक dummy rowset है ।

MySQL . में , बिना टेबल के यह असंभव है।

अधिकांश प्रमुख प्रणालियाँ इसे करने का एक तरीका प्रदान करती हैं:

  • Oracle . में :

    SELECT  level
    FROM    dual
    CONNECT BY
            level <= 10
    
  • SQL Server में :

    WITH    q AS
            (
            SELECT  1 AS num
            UNION ALL
            SELECT  num + 1
            FROM    q
            WHERE   num < 10
            )
    SELECT  *
    FROM    q
    
  • PostgreSQL में :

    SELECT  num
    FROM    generate_series(1, 10) num
    

MySQL कुछ इस तरह की कमी है और यह एक गंभीर कमी है।

मैंने अपने ब्लॉग पोस्ट में नमूना तालिकाओं के लिए परीक्षण डेटा उत्पन्न करने के लिए एक सरल स्क्रिप्ट लिखी, शायद यह काम की होगी:

CREATE TABLE filler (
        id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
) ENGINE=Memory;

CREATE PROCEDURE prc_filler(cnt INT)
BEGIN
        DECLARE _cnt INT;
        SET _cnt = 1;
        WHILE _cnt <= cnt DO
                INSERT
                INTO    filler
                SELECT  _cnt;
                SET _cnt = _cnt + 1;
        END WHILE;
END
$$

आप प्रक्रिया को कॉल करते हैं और तालिका संख्याओं से भर जाती है।

आप सत्र की अवधि के दौरान इसका पुन:उपयोग कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एक खाली स्ट्रिंग डालने से रोकने के लिए एक बाधा

  2. ER_NOT_SUPPORTED_AUTH_MODE - MySQL सर्वर

  3. सभी दूरस्थ कनेक्शन की अनुमति दें, MySQL

  4. MySQL पर @GeneratedValue बहुरूपी सार सुपरक्लास

  5. MySQL में रैंडम पंक्तियों का चयन करना