私はフィールドを持っていますenq_id
- 現在、次のような数字が含まれています:
80081
414365
567
ここで、フィールドを 2 つの方法で更新する必要があります。まず、数字のいずれかが 6 文字を超えているかどうかを確認する必要があります (存在しないはずですが、確認する必要があります)。次に、そのフィールドに 6 文字の文字制限を設定し、最後に、 6 文字でない長さ0's
の先頭に追加してenq_id
6 文字にする必要があります。
何か案は?
以下が達成しようとしている結果を返す場合:
SELECT
`enq_id`,
IF(CHAR_LENGTH(`enq_id`) < 6,
LPAD(`enq_id`,6,'0'),
SUBSTRING(`enq_id`,1,6)
) AS 'result'
FROM `some_table`
WHERE CHAR_LENGTH(`enq_id`) != 6
次に、以下を使用すると、それに応じてテーブルが更新されます。
UPDATE `some_table`
SET `enq_id` =
IF(CHAR_LENGTH(`enq_id`) < 6,
LPAD(`enq_id`,6,'0'),
SUBSTRING(`enq_id`,1,6))
WHERE CHAR_LENGTH(`enq_id`) != 6
このSUBSTRING()
関数は 6 番目の文字以降のすべての文字を削除し、LPAD は必要に応じて先行ゼロ (上記の例) を各レコードに追加することに注意してください。
SELECT `enq_id`,LPAD(`enq_id`,6,'0') AS 'result'
FROM `some_table`
WHERE CHAR_LENGTH(`enq_id`) < 6
と
UPDATE `some_table`
SET `enq_id` = LPAD(`enq_id`,6,'0')
WHERE CHAR_LENGTH(`enq_id`) < 6