从 shell 中转义 sqlite3 的单引号

Posted

技术标签:

【中文标题】从 shell 中转义 sqlite3 的单引号【英文标题】:Escaping single quotes for sqlite3 from the shell 【发布时间】:2017-12-21 09:44:57 【问题描述】:

我正在尝试将单引号添加到我的数据库中,但是当我将数据库中的单引号加倍时,我没有出现单引号?阅读本文档: How to properly escape a single quote for a SQLite database?

我无法成功添加单引号。我是通过 SSH 登录的,所以我不确定这是否是原因?也许还有其他事情可以完成?

我的插入命令:

sqlite3 /db.sql 'insert into `custqueue` values ("2", "take''that", "2")';

我的选择(读取)响应:

2|takethat|2

我没有单引号吗?

【问题讨论】:

【参考方案1】:

bash 不允许单引号之间有单引号;任何单引号结束引用的字符串。所以要在SQL中得到一个单引号,你必须用一个单引号来结束字符串,写一个转义的引号,然后用另一个单引号开始剩下的带引号的字符串:

sqlite3 dbfile 'INSERT INTO tab VALUES(2, "take'\''that", 2);'

【讨论】:

目前正在恢复一个我的映像以从中启动,但一旦完成,就可以尝试一下!谢谢,非常感谢 很有魅力!谢谢

以上是关于从 shell 中转义 sqlite3 的单引号的主要内容,如果未能解决你的问题,请参考以下文章

NamedParameterJdbcTemplate Oracle SQL,如何在命名查询中转义单引号?

PL/SQL,如何在字符串中转义单引号?

PL/SQL,如何在字符串中转义单引号?

在 shell 中的双引号字符串中转义反引号

在 bash 脚本中转义引号和大括号的问题

JavaScript 函数参数中的单引号转义