Vấn đề:
Bạn muốn xóa các ký tự cụ thể khỏi đầu và cuối chuỗi.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng tên là post
với dữ liệu trong hai cột:id
và title
.
id | tiêu đề |
---|---|
1 | 'Tin tức về chó' |
3 | 'Eurovision 2019' |
4 | 'Môi trường chính trị mới' |
Hãy cắt bớt tiêu đề của mỗi bài đăng để loại bỏ khoảng trống không cần thiết ở đầu và cuối.
Giải pháp:
Chúng tôi sẽ sử dụng TRIM
hàm số. Đây là truy vấn bạn sẽ viết:
SELECT TRIM( BOTH ' ' FROM title ) as new_title FROM post;
Ngoài ra, bạn có thể sử dụng phiên bản ngắn hơn không có BOTH
từ khóa; theo mặc định, TRIM
sẽ coi đây là một hoạt động CẢ HAI.
SELECT TRIM(' ' FROM title ) as new_title FROM post;
Đây là kết quả của cả hai truy vấn:
new_title |
---|
‘Tin tức về chó’ |
‘Eurovision 2019’ |
'Môi trường chính trị mới' |
Thảo luận:
Sử dụng TRIM
nếu bạn muốn cắt một chuỗi trong bảng. Chức năng này cho phép bạn xóa một ký tự cụ thể khỏi đầu hoặc cuối chuỗi hoặc từ cả hai đầu. Hàm này nhận các đối số sau:
- Một từ khoá chỉ định các phần cuối sẽ được cắt bớt (tùy chọn—
BOTH
theo mặc định). - Ký tự bạn muốn cắt khỏi chuỗi.
-
FROM
từ khóa, theo sau là tên của cột chuỗi sẽ được cắt bớt.
Trong ví dụ của chúng tôi, giống như sau:
TRIM( BOTH ' ' FROM title )
Như đã đề cập ở trên, TRIM
có thể lấy các từ khóa khác làm đối số đầu tiên của nó. Ngoài việc cắt bỏ từ cả hai đầu, nó cho phép chúng tôi xóa một ký tự chỉ ở cuối chuỗi hoặc chỉ từ đầu:
-
TRAILING
(xóa khỏi phần cuối) -
LEADING
(xóa ngay từ đầu)
Ví dụ dưới đây loại bỏ khoảng trắng ở cuối mỗi tiêu đề (nhưng cũng có thể được sử dụng để cắt bớt khoảng trắng ở đầu nếu bạn sử dụng LEADING
từ khóa thay thế):
SELECT TRIM( TRAILING ' ' FROM title ) as new_title FROM post;
Truy vấn trả về title
cột không có khoảng trắng ở cuối. Lưu ý rằng các khoảng trắng ở đầu vẫn được giữ nguyên.
new_title |
---|
‘Tin tức về chó’ |
‘Eurovision 2019’ |
'Môi trường chính trị mới' |