2013-10-13 61 views
0

我有一個翻譯數據庫,到目前爲止,像休閒的演講/禮貌的演講已被放入註釋領域。但是,現在我又列出了這些演講形式的列表。我想將這些信息在筆記中移動。我可以在下面的查詢中設置新的列,其基礎是在筆記字段中找到關鍵詞「隨便發言」或「禮貌發言」。如何使查詢更新查找並替換fasion mysql的列?

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

但是我還希望在設置新表單字段時,從筆記字段中刪除「隨便發言」或「禮貌發言」。筆記通常會包含諸如「年輕女孩使用的隨意演講」等條目。所以我不能只將字段設置爲「」。否則我將在筆記中丟失額外的信息。 「隨便發言」並不總是在專欄的開頭,有時在中間或結尾。我如何使查詢刪除「隨便發言」這樣的部分備忘錄,因爲它會設置包含發言形式的新列,但留下其餘的備忘錄?

回答

0

最有可能的是,一個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%'; 
+0

隨便講話並不一定總是在一開始,它有時在最後面還有其他音符。這是否仍然有效? – user1397417

+0

啊我看到了,你只是刪除了前16個字符。所以當臨時演講不是筆記中的第一件事時,這不起作用... – user1397417

+0

@ user1397417查看更新的另一個選項。 –