在SQLite数据库中,我认为非常简单的东西至少在我的条件下不起作用。
我有一个名称列,一些名称包含撇号('
),我想删除它。我知道所有包含撇号的名字,所以我不是要查询撇号。我正在做一些更简单的事情:
UPDATE table SET column_name="name surname1 surname2" WHERE column_name="name surname1'surname2";
这不会返回我的期望。它不会产生错误,但不会修改任何记录。
SQL不喜欢反身性?
答案 0 :(得分:0)
查询列的当前值以更新同一列应该没有问题。尝试通过加倍单引号来逃避单引号''
。
请参阅:http://www.sqlite.org/lang_expr.html,内容如下:
通过将字符串括在单引号中形成字符串常量 (')。 字符串中的单引号可以通过放置两个来编码 连续单引号 - 如Pascal。
因此,您的更新应为:
UPDATE table SET column_name='name surname1 surname2' WHERE column_name='name surname1''surname2'
更新:添加了转义机制的说明。