【问题标题】:Bash JSON variable to SQLiteBash JSON 变量到 SQLite
【发布时间】:2019-06-16 07:18:15
【问题描述】:

我实在想不通 - 输出的 SQL 查询无效

key="test"
payload=$(gzip -ckqd ./temp.json.gz | jq -c . | sed 's/"/\\"/g')

printf 'INSERT INTO my_table VALUES ("%s", "%s")' "$key" "$payload" | sqlite3 ./temp.db

$payload 变量显然是一个 json 字符串(可以有单引号和双引号等)

【问题讨论】:

  • SQL 使用单引号作为开头的字符串。
  • 无论如何,我认为你最好的方法是编写一个简单的 perl 或 python 脚本,它接受三个参数 - 数据库、密钥和 json,并使用普通参数绑定方法进行插入,以避免引号、逗号等的所有问题。

标签: json bash sqlite


【解决方案1】:

在 SQL 中,字符串不是用双引号而是用单引号分隔的。

在字符串中,唯一的特殊字符是单引号本身,并且不能用反斜杠转义,而是用另一个引号:

... sed "s/'/''/g"

【讨论】:

    猜你喜欢
    • 2011-12-09
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2013-08-02
    • 2020-07-23
    相关资源
    最近更新 更多