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

MySQL में BETWEEN ऑपरेटर का उपयोग करके विभिन्न मानों के बीच मान प्राप्त करना

MySQL BETWEEN के साथ स्ट्रिंग रेंज फ़िल्टरिंग

MySQL का BETWEEN ऑपरेटर संख्याओं और दिनांकों के अलावा स्ट्रिंग्स पर भी काम करता है, वर्ण क्रम (कोलेशन के आधार पर) का उपयोग करके। यह कोड, पहचानकर्ता या श्रेणियों के लिए रेंज फ़िल्टरिंग के लिए उपयोगी है।

उदाहरण: कर्मचारी कोड रेंज

mysql> CREATE TABLE DemoTable1473 (
    -> EmployeeCode VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.47 sec)

mysql> INSERT INTO DemoTable1473 VALUES
    -> ('EMP_120'), ('EMP_125'), ('EMP_30'), ('EMP_130');
Query OK, 4 rows affected (0.25 sec)

mysql> SELECT * FROM DemoTable1473;
+--------------+
| EmployeeCode |
+--------------+
| EMP_120      |
| EMP_125      |
| EMP_30       |
| EMP_130      |
+--------------+
4 rows in set (0.00 sec)

स्ट्रिंग BETWEEN क्वेरी

mysql> SELECT * FROM DemoTable1473
    -> WHERE EmployeeCode BETWEEN 'EMP_124' AND 'EMP_129';

परिणाम

+--------------+
| EmployeeCode |
+--------------+
| EMP_125      |
+--------------+
1 row in set (0.00 sec)

स्ट्रिंग तुलना कैसे काम करती है

  • वर्ण-दर-वर्ण तुलना (बाएं से दाएं)
  • 'EMP_124' बनाम 'EMP_125': 'E'='E', 'M'='M', 'P'='P', '_'='_', '1'='1', '2'='2', '4'<'5' → EMP_124 < EMP_125
  • 'EMP_30' बनाम 'EMP_124': 'E'='E'... '3' > '1' → EMP_30 > EMP_124 (लेक्सिकोग्राफिकली)

महत्वपूर्ण: लेक्सिकोग्राफिक बनाम संख्यात्मक क्रम

स्ट्रिंगलेक्सिकोग्राफिक क्रमसंख्यात्मक भाग
EMP_30EMP_124 के बाद30
EMP_120EMP_124 के पहले120
EMP_125सीमा में125
EMP_130EMP_129 के बाद130

सही संख्यात्मक रेंज के लिए

-- संख्यात्मक भाग निकालें
SELECT * FROM DemoTable1473
WHERE CAST(SUBSTRING(EmployeeCode, 5) AS UNSIGNED) BETWEEN 124 AND 129;

-- या पैटर्न मिलान
SELECT * FROM DemoTable1473
WHERE EmployeeCode REGEXP '^EMP_(12[4-9]|1[3-9][0-9])$';

सर्वोत्तम अभ्यास

  • रेंज क्वेरी के लिए संख्यात्मक डेटा को संख्यात्मक कॉलम में संग्रहीत करें
  • यदि स्ट्रिंग आवश्यक है, तो निश्चित-चौड़ाई पैडिंग का उपयोग करें: 'EMP_030', 'EMP_120'
  • स्ट्रिंग BETWEEN के लिए कॉलेशन नियमों से अवगत रहें
  1. - MySQL क्वेरी: प्रत्येक समूह के लिए एकाधिक न्यूनतम मान प्राप्त करना

    परिचय जब आपको प्रत्येक समूह (जैसे प्रत्येक छात्र) के लिए न्यूनतम मान वाली पंक्तियां चाहिए, तो सबक्वेरी के साथ MIN() एग्रीगेट फंक्शन का उपयोग किया जा सकता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.56 sec) INSERT INTO DemoTable VALUES(Chris, 87); Query OK, 1 row affected

  1. - MySQL में विशिष्ट कॉलम मान (नाम) प्राप्त करें

    विशिष्ट कॉलम मान प्राप्त करने के लिए LIKE क्लॉज का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1809 ( Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1809 values(John); Qu

  1. - MySQL में टेबल A की तुलना में टेबल B में नहीं होने पर टेबल C में डेटा डालें

    समाधान टेबल A और B पर LEFT JOIN का उपयोग करें, जहां B में मेल नहीं खाता वहां के रिकॉर्ड टेबल C में डालें। उदाहरण टेबल A (demo20): INSERT INTO demo20 VALUES (100,John), (101,Bob), (102,Mike), (103,Carol); टेबल B (demo21): INSERT INTO demo21 VALUES (100,Sam), (101,Adam), (133,Bob), (145,David); ट