SQL:以相同列值为条件更新列值

时间:2014-08-27 22:45:51

标签: sql sqlite

在SQLite数据库中,我认为非常简单的东西至少在我的条件下不起作用。

我有一个名称列,一些名称包含撇号('),我想删除它。我知道所有包含撇号的名字,所以我不是要查询撇号。我正在做一些更简单的事情:

UPDATE table SET column_name="name surname1 surname2" WHERE column_name="name surname1'surname2";

这不会返回我的期望。它不会产生错误,但不会修改任何记录。

SQL不喜欢反身性?

1 个答案:

答案 0 :(得分:0)

查询列的当前值以更新同一列应该没有问题。尝试通过加倍单引号来逃避单引号''

请参阅:http://www.sqlite.org/lang_expr.html,内容如下:

  

通过将字符串括在单引号中形成字符串常量   (')。 字符串中的单引号可以通过放置两个来编码   连续单引号 - 如Pascal。

因此,您的更新应为:

UPDATE table SET column_name='name surname1 surname2' WHERE column_name='name surname1''surname2'

更新:添加了转义机制的说明。