sql >> Databáze >  >> RDS >> Mysql

Problém s backtickem Bash + MySQL -d

Zkuste to udělat:

dbEntry="$(printf "SELECT \140%s\140 FROM 'RiverDataDays' WHERE date = '%s';\n" "$timeSample" "$(<tmpValue )" | mysql -N -D "$targetDatabase")"
echo "$dbEntry"

nebo

dbEntry="$(printf "SELECT \`%s\` FROM 'RiverDataDays' WHERE date = '%s';\n" "$timeSample" "$(<tmpValue )" | mysql -N -D "$targetDatabase")"
echo "$dbEntry"

Zpětná uvozovka (`) se používá při nahrazování příkazů starého stylu, např.

foo=`command`

The

foo=$(command)

místo toho se doporučuje syntaxe. Zpracování zpětného lomítka uvnitř $() je méně překvapivé a $() se snáze vnořuje . Viz http://mywiki.wooledge.org/BashFAQ/082

\140

je osmičková reprezentace zpětného znaménka, viz

man ascii


  1. Kontrola, zda položka neexistuje v jiné tabulce

  2. Převeďte řetězec oddělený čárkami na pole v PL/SQL

  3. Proč je executemany v Pythonu MySQLdb pomalé?

  4. Počet, kolikrát se hodnota objeví v konkrétním sloupci v MySQL