Khi làm việc với MySQL, đôi khi bạn có thể gặp phải các tình huống mà bạn cần thêm một loạt các số với các số không ở đầu.
Có lẽ bạn có yêu cầu rằng tất cả các số đều có ba chữ số, nhưng trong dữ liệu bạn đã được cung cấp, các con số có phạm vi từ một chữ số, đến hai và có thể ba chữ số. Yêu cầu của bạn có thể là điền tất cả các số bằng các số 0 ở đầu, nhưng chỉ để bù đắp cho bất kỳ sự thiếu hụt nào trong yêu cầu ba chữ số.
LPAD()
hàm thực hiện chính xác những gì bạn muốn trong trường hợp này.
Hàm LPAD ()
Nói một cách chính xác, LPAD()
hàm đệm một chuỗi với một chuỗi khác. Nó hoạt động như thế này:
LPAD(str,len,padstr)
Ở đâu str
là chuỗi ký tự, len
là độ dài bắt buộc của kết quả cuối cùng và padstr
là chuỗi sẽ được sử dụng để đệm cho chuỗi khác.
Ví dụ
Dưới đây là một ví dụ về cách đệm một số có một chữ số với hai số không:
SELECT LPAD(7, 3, 0);
Kết quả:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
Trong trường hợp này, hai số 0 ở đầu đã được thêm vào vì chúng tôi đã chỉ định 3
như độ dài yêu cầu.
Vì vậy, nếu chúng ta bắt đầu bằng một số có hai chữ số, thì chỉ có một số 0 được thêm vào:
SELECT LPAD(17, 3, 0);
Kết quả:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Giá trị khác 0
LPAD()
hàm không chỉ giới hạn ở số không. Như đã đề cập, nó có thể được sử dụng để đệm bất kỳ chuỗi nào với bất kỳ chuỗi nào khác. Vì vậy, bạn có thể đệm một số bằng các số 1 đứng đầu hoặc các chữ cái đứng đầu hoặc các ký hiệu khác nếu cần.
SELECT LPAD(7, 10, '.');
Kết quả:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
Và bởi vì nó thực sự là một hàm chuỗi, nó có thể được sử dụng để chèn vào bất kỳ chuỗi không phải số nào. Và nó không giới hạn ở một ký tự đệm - nó có thể được đệm bằng nhiều ký tự nếu cần:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Kết quả:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+