【问题标题】:How to remove quotation at the of the raw content in MySQL?如何删除 MySQL 中原始内容的引号?
【发布时间】:2013-06-18 08:56:22
【问题描述】:

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

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

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

NAme      Language 
Sam          EN"
MAri         ES-TR"

有人知道我怎样才能删除它们吗?

【问题讨论】:

  • 一些在给定条件下可能对您有用的替代解决方案。如果您的原始数据包含所有前导和尾随双引号,您可以只获取substring,如果字符串的其余部分不包含双引号,则可以获取replace
  • 您的查询运行良好。见sqlfiddle.com/#!2/a6a50/1。您确定要更新正确的列吗?
  • @peterm 是的,我确定
  • @theghostofc 请用子字符串或替换给我写查询?我也认为我的原始数据可能有引号,因为我是从 excel 文件中导入的

标签: mysql trim


【解决方案1】:

你可能有尾随空格

试试

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

这里是SQLFiddle演示

更新带有REPLACE()的版本

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

这里是SQLFiddle演示

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

【讨论】:

  • 这也行不通。你能给我写一个带有替换或子字符串的命令示例吗
  • @user2058811 这很简单,但无论如何请参阅更新的答案。
【解决方案2】:

您可以尝试以下 SQL 查询:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多