簡體   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