1
我有一個字段enq_id
- 目前,它包含的數字,如:MySQL的數據添加到現有的場
80081
414365
567
現在,我需要在兩個方面更新領域,首先我需要的,如果任何找出的數字長度超過6個字符(不應該是,但我需要檢查)。然後,我需要在該字段上設置6個字符的字符限制,然後將0's
添加到長度不是6個字符的任何enq_id
的開頭,以使其爲6個字符。
任何想法?
我有一個字段enq_id
- 目前,它包含的數字,如:MySQL的數據添加到現有的場
80081
414365
567
現在,我需要在兩個方面更新領域,首先我需要的,如果任何找出的數字長度超過6個字符(不應該是,但我需要檢查)。然後,我需要在該字段上設置6個字符的字符限制,然後將0's
添加到長度不是6個字符的任何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
完美 - 感謝。 –
沒問題。出於某種原因,我爲長度> 6的記錄添加了額外的條件。我正在更新代碼。 – inhan
再次感謝!真的很感激。 –