Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कैसे mysql में एक आईपी पते से मिलान करने के लिए?

आपको 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 |
+----------------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं एक एकल MySQL प्रविष्टि के बीच कई संभावित पैटर्नों में से एक कैसे ढूंढ सकता हूं? अधिक अंदर

  2. 1 पॉड में तत्काल अनबाउंड तत्काल PersistentVolume Minikube पर दावा है

  3. MySQL व्यू में अंतिम क्वेरी के बाद से नए रिकॉर्ड

  4. क्या मुझे query_cache_size के लिए जगह बनाने के लिए अपने innodb_buufer_pool _size/RAM का त्याग करना चाहिए?

  5. MYSQL:उपयोगकर्ता - प्रोफ़ाइल विवरण तालिका सेटअप - सर्वोत्तम अभ्यास