Mysql
 sql >> база данни >  >> RDS >> Mysql

Bash Script Loop през 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 ), тогава можете да поставите полето 'dangerous' в края и 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. Как да използвате bind_result() вместо get_result() в php

  2. изчисляване на общата сума на всички цифри в колона

  3. Загубена връзка с MySQL сървър при опит за свързване с отдалечен MySQL сървър

  4. Ниво на изолация с Flask-SQLAlchemy

  5. Това безопасна/силна функция за дезинфекция ли е?