![](/img/trans.png)
[英]Mysql @count:= @count + 1 update column based on the sort order of another query
[英]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.