आपको REGEXP
. का उपयोग करना होगा आईपी एड्रेस डॉटेड क्वाड पैटर्न से मेल खाने के लिए।
SELECT *
FROM yourtable
WHERE
thecolumn REGEXP '^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$'
तकनीकी रूप से, यह उन मानों से मेल खाएगा जो मान्य आईपी पते नहीं हैं, जैसे 999.999.999.999
, लेकिन यह महत्वपूर्ण नहीं हो सकता है। क्या है महत्वपूर्ण, आपके डेटा को इस तरह ठीक कर रहा है कि आपके पास जो भी अन्य डेटा है, उससे अलग आईपी पते उनके अपने कॉलम में संग्रहीत हैं। डेटा प्रकारों को एक कॉलम में मिलाना लगभग हमेशा एक बुरा विचार है।
mysql> SELECT '9876543210' REGEXP '^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$';
+---------------------------------------------------------------------------+
| '9876543210' REGEXP '^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$' |
+---------------------------------------------------------------------------+
| 0 |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT '987.654.321.0' REGEXP '^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$';
+------------------------------------------------------------------------------+
| '987.654.321.0' REGEXP '^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$' |
+------------------------------------------------------------------------------+
| 1 |
+------------------------------------------------------------------------------+
एक अन्य तरीका यह है कि MySQL के INET_ATON()
समारोह
. एक अमान्य पता NULL
लौटाएगा ।
यह विधि रेगुलर एक्सप्रेशन की तुलना में अधिक कुशल होने की संभावना है।
आप इसे WHERE
. में एम्बेड कर सकते हैं इस तरह की स्थिति:WHERE INET_ATON(thecolumn) IS NOT NULL
SELECT INET_ATON('127.0.0.1');
+------------------------+
| INET_ATON('127.0.0.1') |
+------------------------+
| 2130706433 |
+------------------------+
SELECT INET_ATON('notes');
+--------------------+
| INET_ATON('notes') |
+--------------------+
| NULL |
+--------------------+
SELECT INET_ATON('56.99.9999.44');
+----------------------------+
| INET_ATON('56.99.9999.44') |
+----------------------------+
| NULL |
+----------------------------+