-1

我有一张带有以下方案的桌子。

meta_id    meta_key    meta_value
1            key1         5
2            key2       sometext
3            key3       serialized_text
4            key4         8

meta_value现在,出于性能原因,我在表中添加了第四列作为该列的“数字表示” 。但我必须更新预先存在的数据。这就是我需要的样子。

meta_id    meta_key    meta_value           num_value
1            key1         5                     5
2            key2       sometext               NULL
3            key3       serialized_text        NULL
4            key4         8                     8

简而言之,只有当 meta_value 是一个数字时,我才需要一个查询来更新第四列。我知道我应该如何根据另一列更新一列。条件是我感兴趣的部分。
谢谢

4

2 回答 2

1

只是:

UPDATE table 
    SET meta_value = null
WHERE meta_value not regexp '^[0-9]+$';

这里的演示

于 2013-07-27T07:57:07.380 回答
1

尝试

UPDATE Table1
   SET num_value = meta_value * 1 -- or just meta_value
 WHERE meta_value REGEXP '^[-]?[0-9]+$'

这是SQLFiddle演示

于 2013-07-27T07:49:00.250 回答