0

我试图使用以下查询从我的 MySQL 表的内容中删除前导和尾随引号:

UPDATE `example_table` 
   SET `title` = TRIM(BOTH '"' FROM `title`)

但它只是删除了我的起始报价,我仍然有如下结束报价:

NAme      Language 
Sam          EN"
MAri         ES-TR"

任何人都知道我怎样才能删除它们?

4

2 回答 2

1

您可能有尾随空格

尝试

UPDATE `example_table` 
   SET `Language` = TRIM(BOTH '"' FROM TRIM(`Language`));

这是SQLFiddle演示

更新一个版本REPLACE()

UPDATE `example_table` 
   SET `Language` = TRIM(REPLACE(`Language`, '"', ''));

这是SQLFiddle演示

注意:此版本将替换所有双引号,不仅是前导和尾随

于 2013-06-18T09:06:34.210 回答
1

您可以尝试以下 SQL 查询:

UPDATE `example_table` 
    SET `Language` = SUBSTRING(`Language`, 2, LENGTH(`Language`) - 2);

这假设您拥有的所有数据都采用"xxxx"or格式"AB-CD",即只有前导和尾随双引号,没有额外的空格或制表符。

如果您的数据有前导和尾随空格,那么您可以尝试以下 SQL 查询:

UPDATE `example_table` 
    SET `Language` = SUBSTRING(TRIM(`Language`), 2, LENGTH(TRIM(`Language`)) - 2);

即使您的数据包含引号,这些查询也可以正常工作,例如"EQ-"EW"

请以此为起点,而不是作为复制粘贴解决方案。

于 2013-06-18T11:44:07.330 回答