【问题标题】:Update replace semicolon in SQL gets syntax errorSQL 中的更新替换分号获取语法错误
【发布时间】:2019-09-12 23:22:22
【问题描述】:

我将一个 SQL 文件导入我的数据库,但出现了问题。句子/短语末尾的所有标点符号都有额外的空格。

示例:

This is a sentence .
This , as you can see , is a problem .
Do it !

应该是:

This is a sentence.
This, as you can see, is a problem.
Do it!

为了更正,我计划在这种情况下在 phpMyAdmin 上运行 SQL 命令

UPDATE book SET content = REPLACE(content,' .','.');
UPDATE book SET content = REPLACE(content,' ,',',');
UPDATE book SET content = REPLACE(content,' ?','?');
UPDATE book SET content = REPLACE(content,' !','!');
UPDATE book SET content = REPLACE(content,' :',':');

到目前为止一切顺利。但是当我在这样的分号上尝试时

UPDATE book SET content = REPLACE(content,' ;',';');

我在模拟查询时遇到语法错误 #1064。

我尝试用这样的反斜杠转义它,但同样的错误

UPDATE book SET content = REPLACE(content,' \;','\;');

知道如何解决这个问题吗?

谢谢

【问题讨论】:

  • 您的目标是什么版本的 SQL Server?这在 MSSQL v13 中工作得很好
  • 服务器:Localhost via UNIX socket 服务器类型:Percona 服务器 服务器版本:5.6.40-84.0-log - Percona 服务器 (GPL),版本 84.0,修订版 47234b3 协议版本:10 用户:服务器字符集: UTF-8 Unicode (utf8)
  • Siteground 共享主机确认他们使用的是 5.6 版。他们说这个版本比13好。我需要准备离开我的主人

标签: mysql sql replace sql-update


【解决方案1】:

试试

delimiter /
UPDATE book SET content = REPLACE(content,' ;',';');
delimiter ;

编辑:

这是 phpMyAdmin 中的一个字段,默认设置为分号。设置在 / 上。

【讨论】:

  • 我 99% 确定是这种情况。尝试使用除“/”之外的其他分隔符,例如“////”,最后更改删除分号:) UPDATE book SET content = REPLACE(content, ' ;', ';')
猜你喜欢
  • 1970-01-01
  • 2020-04-19
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多