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

MySQL के माध्यम से बैश स्क्रिप्ट लूप

कुछ इस तरह:

mysql -e "SELECT `theme_name`, `guid` FROM `themes` WHERE `theme_purchased`='1' AND `theme_compiled`='0'" | while read theme_name guid; do
    # use $theme_name and $guid variables
    echo "theme: $theme_name, guid: $guid"
done

संक्षेप में:mysql कमांड आउटपुट रिकॉर्ड को '\n' से अलग करता है और जब आउटपुट एक पाइप होता है तो फ़ील्ड '\t' से अलग होते हैं। read कमांड एक पंक्ति पढ़ता है, फ़ील्ड में विभाजित होता है, और प्रत्येक को एक चर पर रखता है।

यदि आपके डेटा में फ़ील्ड में रिक्त स्थान हैं, तो आपको डिफ़ॉल्ट read . के साथ कुछ समस्याएं आती हैं बंटवारा इसके चारों ओर कुछ तरीके हैं; लेकिन यदि आप केवल दो फ़ील्ड पढ़ रहे हैं और उनमें से एक में कोई स्थान नहीं होना चाहिए (जैसे guid ), तो आप अंत में 'खतरनाक' फ़ील्ड डाल सकते हैं, और read सब कुछ 'अतिरिक्त' अंतिम चर में डाल देगा।

इस तरह:

mysql -e "SELECT `guid` `theme_name`, FROM `themes` WHERE `theme_purchased`='1' AND `theme_compiled`='0'" | while read guid theme_name; do
    # use $theme_name and $guid variables
    echo "theme: $theme_name, guid: $guid"
done


  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 त्रुटि संख्या 121

  2. व्यवस्थापक के साथ अपना डेटाबेस कैसे प्रबंधित करें

  3. डेटाबेस तालिका से चुनिंदा ड्रॉप डाउन पॉप्युलेट करें

  4. MySQL प्रतिकृति:GTID आधारित प्रतिकृति में त्रुटिपूर्ण लेनदेन

  5. MySQL कनेक्टर एनम को वास्तविक एक से कम मान के साथ जोड़ रहा है