Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Vấn đề backtick Bash + MySQL -d

Hãy thử làm điều này:

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

hoặc

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

Backquote (`) được sử dụng trong thay thế lệnh kiểu cũ, ví dụ:

foo=`command`

foo=$(command)

cú pháp được khuyến khích thay thế. Xử lý dấu gạch chéo ngược bên trong $ () ít gây ngạc nhiên hơn và $ () dễ lồng hơn . Xem http://mywiki.wooledge.org/BashFAQ/082

\140

là đại diện bát phân của một backtick, xem

man ascii


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chèn có điều kiện mysql - nếu không tồn tại chèn

  2. Làm cách nào để lưu trữ múi giờ của người dùng trong mysql?

  3. Hiệu suất của các truy vấn LIKE trên bảng hàng multmillion, MySQL

  4. convert_tz trả về null

  5. ER_NOT_SUPPORTED_AUTH_MODE:Máy khách không hỗ trợ giao thức xác thực do máy chủ yêu cầu; xem xét nâng cấp máy khách MySQL