2011-03-28 71 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

你可以把它拆分成多个更新命令,以保持清醒。 另一个建议是创建一个小应用程序来执行此操作(取决于您需要多久执行一次)。

用正则表达式它不会变得更干净,恐怕。