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

MySQL में टेबल डेटा को फ़िल्टर करके विशिष्ट रिकॉर्ड हटाना

परिचय

MySQL में NOT LIKE ऑपरेटर का उपयोग करके उन रिकॉर्ड्स को बाहर रखा जा सकता है जो किसी पैटर्न से मेल खाते हैं। यह विशिष्ट मानदंडों वाले रिकॉर्ड्स को फ़िल्टर आउट (eliminate) करने के लिए उपयोगी है।

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

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20),
    -> StudentAdmissionYear VARCHAR(20)
    -> );
Query OK, 0 rows affected (1.22 sec)
mysql> INSERT INTO DemoTable(StudentName, StudentAdmissionYear) VALUES('Chris', '2017');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(StudentName, StudentAdmissionYear) VALUES('David', '2015');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(StudentName, StudentAdmissionYear) VALUES('Bob', '2019');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable(StudentName, StudentAdmissionYear) VALUES('Carol', '2015');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable(StudentName, StudentAdmissionYear) VALUES('Sam', '2018');
Query OK, 1 row affected (0.12 sec)

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+-------------+----------------------+
| StudentId | StudentName | StudentAdmissionYear |
+-----------+-------------+----------------------+
| 1         | Chris       | 2017                 |
| 2         | David       | 2015                 |
| 3         | Bob         | 2019                 |
| 4         | Carol       | 2015                 |
| 5         | Sam         | 2018                 |
+-----------+-------------+----------------------+
5 rows in set (0.00 sec)

2015 प्रवेश वर्ष वाले रिकॉर्ड हटाने की क्वेरी

mysql> SELECT * FROM DemoTable
    -> WHERE StudentAdmissionYear NOT LIKE '%2015%';

परिणाम

+-----------+-------------+----------------------+
| StudentId | StudentName | StudentAdmissionYear |
+-----------+-------------+----------------------+
| 1         | Chris       | 2017                 |
| 3         | Bob         | 2019                 |
| 5         | Sam         | 2018                 |
+-----------+-------------+----------------------+
3 rows in set (0.04 sec)

व्याख्या

  • NOT LIKE '%2015%' - '2015' उपस्ट्रिंग न रखने वाले मान
  • % वाइल्डकार्ड: किसी भी संख्या में अक्षर (शून्य सहित)
  • David (2015) और Carol (2015) बाहर हो गए
  • Chris (2017), Bob (2019), Sam (2018) बने रहे

समान ऑपरेटर्स

ऑपरेटरविवरणउदाहरण
LIKEपैटर्न मेलname LIKE 'J%'
NOT LIKEपैटर्न नॉट मेलname NOT LIKE 'J%'
RLIKE / REGEXPरेगेक्स मेलname REGEXP '^J'
NOT REGEXPरेगेक्स नॉट मेलname NOT REGEXP '^J'

प्रदर्शन नोट

  • LIKE 'prefix%' (अग्रणी वाइल्डकार्ड नहीं) इंडेक्स उपयोग कर सकता है
  • LIKE '%suffix' या LIKE '%middle%' फुल टेबल स्कैन करता है
  • NOT LIKE भी इंडेक्स उपयोग नहीं कर सकता
  • बड़े डेटा के लिए: फुलटेक्स्ट सर्च या एप्लिकेशन-लेवल फ़िल्टरिंग पर विचार करें

डेटा टाइप सुधार

StudentAdmissionYear के लिए VARCHAR(20) के बजाय YEAR या INT उपयोग करें:

StudentAdmissionYear YEAR  -- या SMALLINT
WHERE StudentAdmissionYear != 2015  -- सरल, तेज, इंडेक्स योग्य
  1. Java के साथ MySQL डेटाबेस में टेबल से अंतिम रिकॉर्ड कैसे प्राप्त करें? Java के साथ MySQL डेटाबेस में टेबल से अंतिम रिकॉर्ड कैसे प्राप्त करें?

    MySQL डेटाबेस से डेटा प्राप्त करने के लिए, आपको Java से executeQuery() मेथड का उपयोग करना होगा। पहले MySQL डेटाबेस में एक टेबल बनाएं। यहां हम sample डेटाबेस में निम्नलिखित टेबल बनाएंगे: ); Query OK, 0 rows affected (0.80 sec) अब INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। क्वेरी

  1. Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें

    JDBC Statement या PreparedStatement का उपयोग करके Java एप्लिकेशन से MySQL में रिकॉर्ड डालें। टेबल बनाना CREATE TABLE DemoTable( Id INT, Name VARCHAR(30), CountryName VARCHAR(30), Age INT ); Query OK, 0 rows affected (0.66 sec) Java कोड (Statement) 0) { System.out.

  1. - MySQL में टेबल बदलें ताकि परिकलित औसत स्कोर फ़ील्ड INSERT/UPDATE के बिना दिखे

    समाधान GENERATED ALWAYS AS ... VIRTUAL कॉलम का उपयोग करें। सिंटैक्स ALTER TABLE yourTableName ADD COLUMN yourColumnName yourDataType GENERATED ALWAYS AS ((col1 + col2 + ... + colN) / N) VIRTUAL; उदाहरण टेबल बनाएं: INSERT INTO demo32 VALUES (30,60), (20,40), (35,35); वर्चुअल कॉलम जोड़ें GENERATE