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

时间:2016-01-23 18:38:10

标签: 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'的Stortford'。将'替换为''

3 个答案:

答案 0 :(得分:0)

为此,你在PHP中有PDO :: quote函数。请检查此链接:http://php.net/manual/en/pdo.quote.php

如果你想要一个pattrn for regex替换:/(\(|\s)'([\w ']*)'(,|\))/ 或者在PHP中:preg_replace("/(\(|\s)'([\w ']*)'(,|\))/", '$1"$2"$3', $line);

答案 1 :(得分:0)

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

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

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

那肯定匹配一切。我对MySQL Workbench解析正则表达式中的替换方式并不十分熟悉,所以我在那里得不到多少帮助。

答案 2 :(得分:0)

要通过MySQL Workbench导入,请执行以下操作:

  1. 转到Excel并按照您需要的方式获取数据以反映您的表格结构
  2. 在excel中另存为 - > CSV
  3. 在工作台中右键单击表格,然后选择&#39;选择行<&#39;
  4. 在结果集中,点击图标&#39;从外部文件导入记录&#39;
  5. 选择您的CSV
  6. 导入