असमानता ऑपरेटर: <> और !=
MySQL में "बराबर नहीं" (not equal) की जांच के लिए दो ऑपरेटर हैं:
<>- **ANSI SQL मानक**, सभी डेटाबेस में पोर्टेबल!=- MySQL-विशिष्ट, अधिक लोकप्रिय/पठनीय
दोनों **कार्यात्मक रूप से समान** हैं।
सिंटैक्स
SELECT * FROM yourTableName WHERE columnName <> value;
-- या
SELECT * FROM yourTableName WHERE columnName != value;
व्यावहारिक उदाहरण
1. टेबल बनाएं और डेटा डालें
mysql> CREATE TABLE NotEqualsDemo (Id INT);
Query OK, 0 rows affected (1.03 sec)
mysql> INSERT INTO NotEqualsDemo VALUES(1),(2),(3),(4),(5);
2. सभी डेटा
mysql> SELECT * FROM NotEqualsDemo;
+------+
| Id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+
5 rows in set (0.00 sec)
3. 3 को छोड़कर सभी चुनें
mysql> SELECT * FROM NotEqualsDemo WHERE Id <> 3;
+------+
| Id |
+------+
| 1 |
| 2 |
| 4 |
| 5 |
+------+
4 rows in set (0.00 sec)
NULL के साथ व्यवहार
INSERT INTO NotEqualsDemo VALUES(NULL);
SELECT * FROM NotEqualsDemo WHERE Id <> 3;
+------+
| Id |
+------+
| 1 |
| 2 |
| 4 |
| 5 |
+------+
4 rows in set (0.00 sec)
NULL मान बाहर रखा गया है क्योंकि NULL <> 3 का परिणाम UNKNOWN होता है (सत्य नहीं)।
NULL को शामिल करने के लिए
SELECT * FROM NotEqualsDemo WHERE Id <> 3 OR Id IS NULL;
स्ट्रिंग तुलना
SELECT * FROM users WHERE status != 'inactive';
SELECT * FROM users WHERE name <> 'admin';
केस-संवेदनशीलता कॉलेशन पर निर्भर करती है (utf8mb4_general_ci = केस-असंवेदनशील)।
सर्वोत्तम अभ्यास
- पोर्टेबल कोड के लिए
<>उपयोग करें - MySQL-विशिष्ट कोड में
!=ठीक है - हमेशा NULL संभावना पर विचार करें
- इंडेक्स उपयोग के लिए:
col <> valइंडेक्स का उपयोग नहीं कर सकता (फुल स्कैन)