2
我遇到以下問題。我有一個名爲titles
結構如下表:Mysql根據列輸入動態更新行
id int(10),
name varchar(100),
在某一點後,我們增加了一個名爲modified_name
新列。它被定義爲與name
相同,區別在於它是小寫字母,並將所有空格替換爲-
。我們添加了該列,因此我們需要現在將正確的修改名稱值存入該列的每個記錄中。爲此,我們編寫了一個PHP腳本,通過從數據庫中加載值並處理它們來處理該腳本,但這非常低效。是否可以編寫一個UPDATE
查詢,以便將正確的值添加到titles
表中的每個記錄中。我可以考慮使用存儲過程和while循環執行此操作的方法,但是我想知道是否可以提高效率。它有什麼辦法可以實現類似以下內容:
UPDATE `titles`
SET
`modified_name` = LOWER(REPLACE(SELECT `name` FROM `titles` WHERE id = PRESENT_VALUE), ' ', '-');
,目的是爲了集中的每個記錄的modified_title
列在titles
表中的唯一值從該記錄的name
列結果如下:
# Before modification update query
name = "Hello Goodbye"
modified_name = ""
# After modification update
name = "Hello Goodbye"
modified_name = "hello-goodbye"
感謝您的幫助,任何建議如何最好地做到這一點將不勝感激。
哇,完美的工作。我不知道這種類型的操作是可能的。這對我今後肯定會有很大的幫助。謝謝。 – usumoio