ABS() फंक्शन दो मानों के अंतर का निरपेक्ष मान (absolute value) देता है। इसका उपयोग WHERE क्लॉज में करके उन रिकॉर्ड्स को फ़िल्टर कर सकते हैं जहां दो कॉलम्स का निरपेक्ष अंतर एक थ्रेशोल्ड से अधिक हो।
उदाहरण: studentmarks टेबल
mysql> SELECT * FROM studentmarks
WHERE ABS(Hindi - English) > 10;
परिणाम
+--------+-------+---------+------+---------+-----------+
| Name | Hindi | English | Math | Physics | Chemistry |
+--------+-------+---------+------+---------+-----------+
| Gaurav | 75 | 86 | 95 | 69 | 85 |
| Rahul | 74 | 85 | 97 | 69 | 86 |
| Mohit | 73 | 87 | 89 | 69 | 86 |
+--------+-------+---------+------+---------+-----------+
व्याख्या
- केवल वे पंक्तियाँ जहां
|Hindi - English| > 10 ABS()ऋणात्मक अंतर को धनात्मक बनाता है- बिना ABS के:
Hindi - English > 10केवल एक दिशा जांचता
अन्य उपयोग
- मूल्य विचलन जांच:
WHERE ABS(actual - expected) > tolerance - समय अंतर:
WHERE ABS(TIMESTAMPDIFF(SECOND, t1, t2)) > 3600 - समन्वय दूरी:
WHERE ABS(lat1 - lat2) + ABS(lon1 - lon2) > threshold
प्रदर्शन नोट: इंडेक्स उपयोग के लिएABS(col1 - col2) > valके बजाय(col1 - col2 > val) OR (col2 - col1 > val)लिखें (MySQL 8.0+ में फंक्शनल इंडेक्स संभव)।