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

Sql के चुनिंदा स्टेटमेंट में कॉलम नाम के रूप में पास नंबर

आप एक स्ट्रिंग शाब्दिक मान का चयन कर रहे हैं '5' आपकी तालिका में प्रत्येक पंक्ति के लिए:

select 5 from mytable_name;

और यह ठीक काम करता है। क्योंकि SELECT . में कथन जिसे आप चुन सकते हैं:

  • कॉलम संदर्भ,
  • शाब्दिक मूल्य जैसे आपके मामले में।
  • फ़ंक्शन.
  • मूल्य अभिव्यक्ति।
  • अभिव्यक्ति चुनें।

जैसा कि मानक SQL द्वारा परिभाषित किया गया है:

अपडेट करें:

हालांकि, यदि आपके पास एक नाम वाला कॉलम है, तो आपके मामले में एक संख्या है, तो आपको इसमें मानों का चयन करने के लिए इससे बचना होगा:

 SELECT `143` FROM Table1;

यह कॉलम में सभी पंक्तियों का चयन करेगा 143

लेकिन, यह:

 SELECT 143 FROM Table1;

तालिका में मिली प्रत्येक पंक्ति के लिए स्ट्रिंग शाब्दिक 143 का चयन करेगा।

ध्यान दें कि: यदि संभव हो, तो इन स्तंभों को इस तरह नाम न देने का प्रयास करें, यह अनुशंसा की जाती है और सर्वोत्तम अभ्यास है, ऐसा न करें।

SQL Fiddle Demo

अपडेट 2:

ध्यान दें, अगर आप 143 . चुनते हैं या '143' , या यहां तक ​​कि "143" यह शाब्दिक मूल्य का चयन करेगा 143 कॉलम की तारीख नहीं। निम्नलिखित समान हैं:

SELECT 143 FROM Table1;
SELECT '143' FROM Table1;
SELECT "143" FROM Table1;

ये सभी SELECT s कॉलम में डेटा का चयन नहीं करेंगे, वे शाब्दिक मान का चयन करेंगे 143 कॉलम डेटा नहीं। यह डेमो देखें:

डेमो

आपको दो के साथ कॉलम नाम से बचना होगा:

``

इस तरह:

SELECT `143` FROM table1;

नहीं:

SELECT '143' FROM table1'

जैसा मैंने यहां किया:

सही डेमो



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्पष्ट_डिफॉल्ट्स_for_timestamp को कैसे सक्षम करें?

  2. MySQL में आवृत्ति से पर्सेंटाइल की गणना करें

  3. अनुयायी/निम्नलिखित डेटाबेस संरचना

  4. MySQL फ़ंक्शन में त्रुटि कैसे उत्पन्न करें

  5. स्टैंडअलोन मूडल को क्लस्टर्ड डेटाबेस स्केलेबल सेटअप में माइग्रेट कैसे करें