-1

次のスキームのテーブルがあります。

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

meta_valueここで、パフォーマンス上の理由から、列の「数値表現」として 4 番目の列をテーブルに追加しました。しかし、既存のデータを更新する必要があります。これが私が必要とする方法です。

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 番目の列を更新するクエリが必要です。別の列に基づいて列を更新する方法を知っています。状態は気になる部分です。
よろしくお願いします。

4

2 に答える 2

1

ただ:

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

ここでデモを見てください

于 2013-07-27T07:57:07.380 に答える