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

MySQL में ORDER BY RAND() LIMIT का उपयोग करके निश्चित संख्या में रैंडम रिकॉर्ड चुनना

MySQL में ORDER BY RAND() और LIMIT का उपयोग करके टेबल से निश्चित संख्या में रैंडम रिकॉर्ड चुनें।

सिंटैक्स

SELECT * FROM yourTableName ORDER BY RAND() LIMIT numberOfRecords;

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> LastName VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.51 sec)
mysql> INSERT INTO DemoTable VALUES('Brown'), ('Smith'), ('Taylor'), ('Miller'), ('Johnson');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+----------+
| LastName |
+----------+
| Brown    |
| Smith    |
| Taylor   |
| Miller   |
| Johnson  |
+----------+
5 rows in set (0.00 sec)

4 रैंडम रिकॉर्ड चुनना

mysql> SELECT * FROM DemoTable ORDER BY RAND() LIMIT 4;

आउटपुट (उदाहरण - हर बार अलग होगा)

+----------+
| LastName |
+----------+
| Brown    |
| Miller   |
| Johnson  |
| Taylor   |
+----------+
4 rows in set (0.03 sec)

प्रदर्शन चेतावनी:

  • ORDER BY RAND() बड़ी टेबल पर धीमा होता है (पूर्ण टेबल स्कैन + फाइलसॉर्ट)
  • बड़ी टेबल के लिए बेहतर दृष्टिकोण:
    • कुल पंक्तियों की गिनती करें, रैंडम ऑफसेट जनरेट करें, LIMIT 1 OFFSET random उपयोग करें
    • या प्राइमरी की रेंज में रैंडम ID जनरेट करें: WHERE id >= (SELECT FLOOR(RAND() * (MAX(id) - MIN(id) + 1)) + MIN(id)) LIMIT n

MySQL 8.0+: TABLESAMPLE SYSTEM (10) (सांख्यिकीय नमूनाकरण) का उपयोग कर सकते हैं, लेकिन सटीक पंक्ति संख्या की गारंटी नहीं देता।

  1. - MySQL में महीने के अनुसार कुल राशि (SUM) कैसे प्राप्त करें?

    MySQL में MONTH() और YEAR() फ़ंक्शन के साथ GROUP BY का उपयोग करके महीने के अनुसार राशि का योग निकाला जा सकता है। उदाहरण खरीद तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -> PurchaseDate DATE, -> Amount INT -> ); डेटा डालें: mysql> INSERT INTO DemoTable VALUES ->

  1. - MySQL में स्टोर्ड प्रोसीजर से टेबल रिकॉर्ड कैसे प्रदर्शित करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर SELECT स्टेटमेंट रखकर टेबल रिकॉर्ड्स प्रदर्शित कर सकते हैं। यह एनकैप्सुलेशन, पुन: उपयोग, और सुरक्षा (टेबल पर सीधे SELECT अधिकार दिए बिना डेटा एक्सेस) के लिए उपयोगी है। उदाहरण: सभी रिकॉर्ड प्रदर्शित करने वाला प्रोसीजर डेमो टेबल बनाएं: mysql> CREATE TABLE DemoT

  1. - MySQL में कॉमा-सेपरेटेड मान वाले कॉलम में विशिष्ट संख्या खोजकर रिकॉर्ड चुनें

    CONCAT() + LIKE कॉमा सेपरेटेड स्ट्रिंग में सटीक संख्या मिलान के लिए: select * from yourTableName where concat(,, yourColumnName, ,) like %,yourValue,%; उदाहरण insert into demo49 values(4,5,6,Adam), (5,3,2,Mike), (3,4,9,Bob); संख्या 4 खोजना select * from demo49 where concat(,, id, ,) like %,4,%;