2011-03-28 97 views
0

無論如何我可以使用正則表達式清理它嗎? 它似乎很靈活,我仍然需要添加更多。清理Mysql更新查詢

UPDATE location 
SET area = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
area, 'One', '') , 'Two', '') , 'Three', '') , 'Four', '') , 'Five', ''); 

感謝

回答

0

使用值可能的區域/值對創建查找表。

UPDATE location, lookuptable SET location.area = lookuptable.value WHERE location.area = lookuptable.area 
+0

嗨,看起來很有趣,但我得到這個錯誤[錯誤] 1054 - 'where子句'中的未知列'lookuptable.area'。似乎無法修復它。 – jamjam 2011-03-28 18:22:51

+0

@jamjam您需要創建具有列區域和值的表格。然後添加所有可能的值。 – xecaps12 2011-03-28 18:25:44

+0

嘿,終於搞定了。但我無法使用,因爲它在實踐中不起作用。我上面的例子是簡單化的。它給人的印象是「區域」字段包含有限數量的值。在現場時,該領域還包含各種類型的其他數據。 – jamjam 2011-03-28 18:53:42

0

你可以把它拆分成多個更新命令,以保持清醒。 另一個建議是創建一個小應用程序來執行此操作(取決於您需要多久執行一次)。

用正則表達式它不會變得更乾淨,恐怕。