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

MySQL Select जब ग्रुप्ड रिकॉर्ड में एकाधिक मिलान वाले स्ट्रिंग हों

MySQL में REGEXP से पैटर्न मिलान के साथ चयन करें

इसके लिए आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं:

mysql> create table DemoTable
(
    ProductId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ProductName varchar(20)
); Query OK, 0 rows affected (0.19 sec)

इन्सर्ट कमांड से टेबल में कुछ रिकॉर्ड डालें:

mysql> insert into DemoTable(ProductName) values('Product-1'); Query OK, 1 row affected (0.05 sec)
mysql> insert into DemoTable(ProductName) values('Product2'); Query OK, 1 row affected (0.06 sec)
mysql> insert into DemoTable(ProductName) values('Product1'); Query OK, 1 row affected (0.04 sec)
mysql> insert into DemoTable(ProductName) values('Product-3'); Query OK, 1 row affected (0.05 sec)
mysql> insert into DemoTable(ProductName) values('Product3'); Query OK, 1 row affected (0.05 sec)
mysql> insert into DemoTable(ProductName) values('Product-4'); Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable(ProductName) values('Product4'); Query OK, 1 row affected (0.05 sec)

सेलेक्ट स्टेटमेंट से टेबल के सभी रिकॉर्ड प्रदर्शित करें:

mysql> select *from DemoTable;

आउटपुट:

+-----------+-------------+
| ProductId | ProductName |
+-----------+-------------+
| 1         | Product-1   |
| 2         | Product2    |
| 3         | Product1    |
| 4         | Product-3   |
| 5         | Product3    |
| 6         | Product-4   |
| 7         | Product4    |
+-----------+-------------+
7 rows in set (0.00 sec)

एकाधिक मिलान वाले स्ट्रिंग वाले ग्रुप्ड रिकॉर्ड के लिए क्वेरी:

mysql> select *from DemoTable where ProductName regexp 'Product[1234].*';

आउटपुट:

+-----------+-------------+
| ProductId | ProductName |
+-----------+-------------+
| 2         | Product2    |
| 3         | Product1    |
| 5         | Product3    |
| 7         | Product4    |
+-----------+-------------+
4 rows in set (0.00 sec)

व्याख्या: रेगेक्स Product[1234].* "Product" से शुरू होने वाले, उसके बाद 1,2,3, या 4, फिर किसी भी वर्ण से मेल खाता है। यह 'Product-1' (हाइफ़न के कारण), 'Product2', 'Product1', 'Product-3', 'Product3', 'Product-4', 'Product4' से मेल खाता है। लेकिन आउटपुट केवल बिना हाइफ़न वाले दिखाता है क्योंकि .* हाइफ़न से मेल नहीं खाता? वास्तव में पैटर्न Product[1234] के बाद .* है, इसलिए 'Product-1' में 'Product' के बाद '-' है, जो [1234] से मेल नहीं खाता। सही पैटर्न Product[-]?[1234] होगा।

  1. - MySQL में ORDER BY RAND() LIMIT 1 से यादृच्छिक रिकॉर्ड चुनें

    MySQL में ORDER BY RAND() LIMIT 1 का उपयोग करके टेबल से एक यादृच्छिक पंक्ति चुन सकते हैं। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY RAND() LIMIT 1; उदाहरण 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable1581(StudentName) VALUES(Chris), (Bob), (Sam), (Mike), (Carol); 3. यादृच्छिक पंक्ति चुन

  1. - MySQL में वर्तमान दिनांक से मिलान करने वाली विशिष्ट दिनांक पर रिकॉर्ड अपडेट करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1822 ( Amount int, DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1822 values(1000,2019-10-11); Query OK, 1 row affected (0.00 sec) mysql&

  1. - MySQL में GROUP BY HAVING और IN से एकाधिक मान शर्त पूरी करने वाली पंक्तियाँ चुनें

    किसी कॉलम (जैसे Subject) में एकाधिक विशिष्ट मान (MySQL, MongoDB) **दोनों** रखने वाले समूह (FirstName) खोजने के लिए IN फ़िल्टर + GROUP BY + HAVING COUNT(*) = N का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1885 (FirstName VARCHAR(20), Subject VARCHAR(50)); डेटा डालें mysql> INSERT IN