繁体   English   中英

如何使查询更新查找和替换fasion mysql中的列?

[英]how to make a query update a column in a find and replace sort of fasion mysql?

我有一个翻译数据库,并且到目前为止,在便笺字段中已添加了诸如休闲演讲/礼貌演讲之类的笔记。 但是现在,我在另一列中列出了这些演讲形式。 我想将这些信息移至其注释中。 我可以在下面的查询中进行设置,以基于在备注字段中找到关键字“随意语音”或“礼貌语音”来设置新列。

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

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

SUBSTRING()最有可能工作。 像这样:

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%';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM