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

MySQL में VARCHAR कॉलम से किसी विशेष मान से अधिक मान कैसे प्राप्त करें

चूंकि जिस कॉलम से आप विशेष मान से अधिक मान प्राप्त करना चाहते हैं वह VARCHAR है, CAST() फ़ंक्शन का उपयोग करें। उदाहरण के लिए, varchar मानों वाले कॉलम से 999 से अधिक मान लाने के लिए।

आइए पहले एक टेबल बनाते हैं:

mysql> create table DemoTable ( 
    Value varchar(100) ); 
Query OK, 0 rows affected (1.02 sec)

इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

mysql> insert into DemoTable values('900'); 
Query OK, 1 row affected (0.49 sec)
mysql> insert into DemoTable values('1090'); 
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('860'); 
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable values('12345'); 
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable values('908345'); 
Query OK, 1 row affected (0.16 sec)

सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:

mysql> select * from DemoTable;

यह निम्नलिखिक आउटपुट देगा:

+--------+
| Value  |
+--------+
| 900    |
| 1090   |
| 860    |
| 12345  |
| 908345 |
+--------+
5 rows in set (0.00 sec)

VARCHAR कॉलम से विशेष मान से अधिक मान प्राप्त करने की क्वेरी

mysql> select max(cast(Value AS SIGNED)) from DemoTable;

यह निम्नलिखिक आउटपुट देगा:

+----------------------------+
| max(cast(Value AS SIGNED)) |
+----------------------------+
| 908345                     |
+----------------------------+
1 row in set (0.05 sec)

व्याख्या

  • CAST(Value AS SIGNED) स्ट्रिंग को साइन किए गए पूर्णांक में बदलता है
  • MAX() परिवर्तित मानों में से अधिकतम ढूंढता है
  • स्ट्रिंग तुलना '908345' < '999' होती (लेक्सिकोग्राफिक), इसलिए CAST आवश्यक है
  • UNSIGNED केवल गैर-ऋणात्मक के लिए, SIGNED ऋणात्मक के लिए भी

999 से अधिक सभी मान प्राप्त करें

SELECT Value FROM DemoTable WHERE CAST(Value AS SIGNED) > 999;

परिणाम: 1090, 12345, 908345

सावधानी

गैर-संख्यात्मक स्ट्रिंग्स (जैसे 'abc') CAST के साथ 0 बन जाती हैं। पहले Value REGEXP '^[0-9]+$' से फ़िल्टर करें।

  1. - MySQL में SELECT क्वेरी से विशिष्ट कॉलम रिकॉर्ड कैसे प्राप्त करें?

    MySQL में किसी टेबल से केवल विशिष्ट कॉलम के डेटा को प्राप्त करना बहुत आसान है। इसके लिए SELECT * के बजाय केवल उस कॉलम का नाम लिखें जिसे आप देखना चाहते हैं। उदाहरण के साथ समझें सबसे पहले एक डेमो टेबल बनाते हैं: mysql> CREATE TABLE DemoTable1837 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY

  1. - MySQL कॉलम में विशिष्ट वर्ण को कैसे बदलें?

    MySQL में किसी कॉलम के भीतर विशिष्ट वर्ण या सबस्ट्रिंग को बदलने के लिए REPLACE() फंक्शन का उपयोग UPDATE स्टेटमेंट के साथ करें। यह डेटा क्लीनिंग और फॉर्मेटिंग के लिए बहुत उपयोगी है। उदाहरण: अंडरस्कोर (_) को हटाना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1899 ( Code VARCHAR(20) ); अंडर

  1. - MySQL में VARCHAR कॉलम से अधिकतम मान कैसे प्राप्त करें

    समस्या VARCHAR कॉलम पर MAX() सीधे काम नहीं करता क्योंकि स्ट्रिंग तुलना वर्णानुक्रम में होती है। समाधान CAST() का उपयोग करके VARCHAR को UNSIGNED INTEGER में बदलें फिर MAX() लागू करें। उदाहरण INSERT INTO DemoTable2030 VALUES (8), (1), (10001), (901); क्वेरी SELECT MAX(CAST(Value AS UNSIGNED)) FRO