mysql - 替换字符串查询中的所有单引号

标签 mysql sql regex mysql-workbench

我有一个包含与此类似的 SQL 查询的文件:

INSERT INTO Bank (bankCode, swiftCode, bankName, country, countryCode, locationCode, 
address, city) 
VALUES ('MIDL', 'MIDLGB2102N', 'Hsbc Bank Plc', 'United Kingdom', 'GB',
'21', '', 'Bishop's Stortford');

我必须替换字符串文字中的所有单引号才能执行查询。

有人可以提供正则表达式来实现这一目标吗?

例如上面的查询应该是:

INSERT INTO Bank (bankCode, swiftCode, bankName, country, countryCode,
locationCode, 
address, city) 
VALUES ('MIDL', 'MIDLGB2102N', 'Hsbc Bank Plc', 'United Kingdom', 'GB',
'21', '', 'Bishop''s Stortford');

'Bishop's Stortford' 替换为 'Bishop's Stortford' 。将 ' 替换为 ''

最佳答案

最简单的方法可能类似于:

/[^,(]\s*'\s*[^,)]/

这将匹配所有前面或后面没有逗号或括号的 ' 字符(仅限其他有效的 MySQL 字符)。我包含了对空格的搜索,因为这些字符也可能是有效字符。

这肯定会匹配所有内容。我不太熟悉 MySQL Workbench 如何解析正则表达式中的替换,因此我无法提供太多帮助。

关于mysql - 替换字符串查询中的所有单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34967243/

相关文章:

php - 即使在 PDO 准备语句和绑定(bind)参数之后也无法转义数组内的单引号

javascript - 如果字符串的任何变体在 URL 中匹配,则返回 true

sql - 将标签数组传递给 plpgsql 函数并在 WHERE 条件下使用它

sql - 对我的开发模式中的这些额外表有什么想法吗?

android - 如何从android观察远程sql数据库表中所做的更改

java - java mysql 将字符串转换为时间戳

javascript - 正则表达式计数下划线

python - 为什么我的 Python 正则表达式模式运行如此缓慢?

php - 访问mysql_fetch_object返回的每一行时如何进行for循环?

php - 在 Windows Server 2016 + Apache/MySQL 上部署应用程序的安全方法