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

MySQL में कैसे चेक करें कि कोई वैल्यू इंटीजर है या नहीं?


दिए गए वैल्यू की जांच करने के लिए कि यह स्ट्रिंग है या नहीं, हम CAST() फंक्शन का उपयोग करते हैं। यदि वैल्यू न्यूमेरिक नहीं है तो यह 0 लौटाता है, अन्यथा यह न्यूमेरिक वैल्यू लौटाएगा। इस तरह, हम चेक कर सकते हैं कि वैल्यू इंटीजर है या नहीं।

केस 1 − इंटीजर्स के साथ स्ट्रिंग की जांच

mysql> select CAST('John123456' AS UNSIGNED);

आउटपुट निम्न है। यह दिखाता है कि वैल्यू न्यूमेरिक नहीं है, इसलिए 0 लौटाया गया है।

+--------------------------------+
| CAST('John123456' AS UNSIGNED) |
+--------------------------------+
| 0                              |
+--------------------------------+
1 row in set, 1 warning (0.00 sec)

केस 2 − केवल इंटीजर वैल्यूज़ की जांच

mysql> select CAST('123456' AS UNSIGNED);

आउटपुट निम्न है। यह दिखाता है कि वैल्यू न्यूमेरिक है, इसलिए वैल्यू स्वयं लौटाई गई है।

+----------------------------+
| CAST('123456' AS UNSIGNED) |
+----------------------------+
| 123456                     |
+----------------------------+
1 row in set (0.00 sec)

यह लॉजिक फ्लोट के लिए भी अच्छा काम करता है।

फ्लोट वैल्यू के साथ क्वेरी निम्न है।

mysql> SELECT CAST('78.90' AS UNSIGNED);

आउटपुट यहाँ है।

+---------------------------+
| CAST('78.90' AS UNSIGNED) |
+---------------------------+
| 78                        |
+---------------------------+
1 row in set, 1 warning (0.00 sec)

रेगुलर ऑपरेटर के साथ वैकल्पिक लॉजिक

यह किसी भी वैल्यू के लिए सभी कंडीशन्स के लिए काम करता है, यहां तक कि फ्लोट के लिए भी।

आइए एक नई टेबल बनाते हैं।

mysql> create table CheckingIntegerDemo 
-> ( 
-> Value varchar(200) 
-> ); 
Query OK, 0 rows affected (0.88 sec)

टेबल में रिकॉर्ड्स इन्सर्ट करना।

mysql> insert into CheckingIntegerDemo values('John123456'); 
Query OK, 1 row affected (0.10 sec) 
mysql> insert into CheckingIntegerDemo values('123456'); 
Query OK, 1 row affected (0.16 sec) 
mysql> insert into CheckingIntegerDemo values('123.456'); 
Query OK, 1 row affected (0.16 sec)

सभी रिकॉर्ड्स डिस्प्ले करने के लिए।

mysql> select * from CheckingIntegerDemo;

आउटपुट यहाँ है।

+------------+
| Value      |
+------------+
| John123456 |
| 123456     |
| 123.456    |
+------------+
3 rows in set (0.00 sec)

उपरोक्त आउटपुट में, केवल 123456 एक इंटीजर है और बाकी नहीं हैं।

चेक करने का सिंटैक्स कि वैल्यू इंटीजर है।

SELECT yourColumnName FROM yourTableName WHERE yourColumnName REGEXP '^-?[0-9]+$';

क्वेरी जिसमें हमने रेगुलर एक्सप्रेशन का उपयोग किया है। यह केवल इंटीजर वैल्यू आउटपुट करेगा।

mysql> select Value from CheckingIntegerDemo where Value REGEXP '^-?[0-9]+$';

आउटपुट निम्न है।

+--------+
| Value  |
+--------+
| 123456 |
+--------+
1 row in set (0.00 sec)

  1. - MySQL में टेबल पर CHECK कंस्ट्रेंट कैसे जोड़ें?

    MySQL 8.0.16+ CHECK कंस्ट्रेंट का पूर्ण समर्थन करता है। पुराने संस्करण इसे पार्स करते हैं लेकिन लागू नहीं करते। सिंटैक्स CREATE TABLE table_name ( column1 datatype, column2 datatype, ... CHECK (condition) ); उदाहरण: आयु सीमा कंस्ट्रेंट ); Query OK, 0 rows affected (0.55 sec) नामि

  1. - MySQL में कॉलम वैल्यू के सामने स्ट्रिंग कैसे प्रीपेंड करें?

    MySQL में कॉलम वैल्यू के सामने स्ट्रिंग प्रीपेंड करने के लिए, हम CONCAT फंक्शन का उपयोग कर सकते हैं। CONCAT फंक्शन का उपयोग UPDATE स्टेटमेंट के साथ किया जा सकता है। टेबल बनाना। mysql> create table PrependStringOnColumnName -> ( -> Id int, -> Name varchar(200) -> ); Query OK, 0

  1. MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है? MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है?

    हम इसे DATABASE() मेथड की मदद से DUAL से चेक कर सकते हैं। मान लीजिए, हम डेटाबेस business का उपयोग कर रहे हैं। क्वेरी निम्न है − mysql> USE business; Database changed अब हम DATABASE() को DUAL से चेक कर सकते हैं कि कौन सा डेटाबेस चुना गया है। क्वेरी निम्न है − mysql> SELECT DATA