-3

ドットの後の値が.10未満の場合、x列を余分なゼロで更新する作業クエリを見つけたり作成したりできないようです-列xに値があります。

7.3
5.3
0.14

列を更新しようとしているので、ドットの後の値が .10 を下回るとゼロが追加されます。上記の例は最終的に次のようになる必要があります。

7.03
5.03
0.14

mysql UPDATE-query を使用してこれを行う方法はありますか?

どうもありがとう。

4

3 に答える 3

0

このような操作の背後にあるアイデアはよくわかりませんが、非常に簡単です。

SELECT CASE
    WHEN INSTR(id, '.') = 0 THEN id
    ELSE CASE
         WHEN CAST(SUBSTRING_INDEX(id, '.', -1) AS UNSIGNED) < 10 THEN
               CONCAT(SUBSTRING_INDEX(id, '.', 1), '.0', CAST(SUBSTRING_INDEX(id, '.', -1) AS UNSIGNED))
         ELSE id
    END
END as result
FROM table_name


UPDATE table_name SET id = CASE
    WHEN INSTR(id, '.') = 0 THEN id
    ELSE CASE
         WHEN CAST(SUBSTRING_INDEX(id, '.', -1) AS UNSIGNED) < 10 THEN
               CONCAT(SUBSTRING_INDEX(id, '.', 1), '.0', CAST(SUBSTRING_INDEX(id, '.', -1) AS UNSIGNED))
         ELSE id
    END
END

ただし、これを使用する前に、スキーマと何をしようとしているのかをもう一度考えてください。その時は必要ないと思います。

于 2013-10-14T00:07:38.610 に答える