0

我有一个翻译数据库,到目前为止,诸如休闲演讲/礼貌演讲之类的注释已被放入注释字段。但现在我已经制作了另一列,列出了这些演讲形式。我想把注释中的信息移到它上面。我可以在下面的查询中进行此查询,以根据在备注字段中找到关键字“随意讲话”或“礼貌讲话”来设置新列。

UPDATE `mrhowtos_main`.`eng-jap` SET `form` = 'Casual form' WHERE `notes` LIKE '%Casual speech%';

但是,当我设置新的表单字段时,我还想从注释字段中删除“随意讲话”或“礼貌讲话”。笔记通常会包含诸如“年轻女孩使用的随意演讲”之类的条目。所以我不能只将字段设置为“”。否则我会丢失笔记中的额外信息。“随意讲话”并不总是在栏目的开头,有时在中间或结尾。如何使查询删除诸如“随意讲话”之类的注释部分,因为它设置了包含讲话形式的新列,但保留了其余的注释?

4

1 回答 1

0

很可能, aSUBSTRING()应该工作。像这样的东西:

UPDATE `mrhowtos_main`.`eng-jap` 
SET `form` = 'Casual form', `notes` = SUBSTRING(`notes`, -16)
WHERE `notes` LIKE '%Casual speech%';

这假定包含的任何行"Casual speech"实际上都包含"Casual speech, ". 负值告诉 MySQL 从字符串末尾开始的多个字符开始子字符串。您可以根据需要进行调整。

您对 . 重复基本相同的事情"polite speech"

编辑:

如果您要删除的字符串几乎可以在任何地方,REPLACE()可能是一个更好的选择:

UPDATE `mrhowtos_main`.`eng-jap` 
SET `form` = 'Casual form', `notes` = REPLACE(`notes`, 'Casual speech', '')
WHERE `notes` LIKE '%Casual speech%';
于 2013-10-13T06:59:00.000 回答