Trong MariaDB, TRIM()
là một hàm chuỗi tích hợp để xóa các ký tự khỏi đầu hoặc cuối chuỗi.
Theo mặc định, nó sẽ xóa các khoảng trắng ở đầu và cuối, nhưng bạn có thể chỉ định ký tự nào cần xóa, cũng như bạn muốn xóa ký tự đó từ bên nào.
Cú pháp
TRIM()
chức năng có thể được sử dụng như sau:
TRIM([remstr FROM] str)
Hoặc:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Ở đâu str
là chuỗi để xóa mọi dấu cách ở cuối và remstr
là chuỗi cần loại bỏ.
Nếu remstr
không được cung cấp, thì TRIM()
xóa khoảng trắng.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(' Caribbean Island ') AS "Trimmed";
Kết quả:
+ ------------------------ + ------------------ + | Untrimmed | Cắt tỉa | + ------------------------ + ------------------ + | Đảo Caribe | Đảo Caribe | + ------------------------ + ------------------ +Ví dụ này sử dụng cú pháp cơ bản nhất. Tất cả những gì chúng tôi đã làm là cung cấp chuỗi để cắt. Chúng tôi không chỉ định ký tự / s nào cần cắt và vì vậy tất cả các khoảng trắng đều được cắt bớt từ cả hai bên của chuỗi.
Chúng ta cũng có thể thấy rằng không gian bên trong chuỗi vẫn còn nguyên vẹn.
BOTH
Đối sốTheo mặc định,
TRIM()
cắt xén cả hai mặt của chuỗi. Tuy nhiên, bạn có thể chỉ định rõ ràngBOTH
nếu bạn muốn:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(BOTH FROM ' Caribbean Island ') AS "Trimmed";
Kết quả:
+ ------------------------ + ------------------ + | Untrimmed | Cắt tỉa | + ------------------------ + ------------------ + | Đảo Caribe | Đảo Caribe | + ------------------------ + ------------------ +Chúng tôi nhận được kết quả tương tự như ví dụ trước.
LEADING
Đối sốChỉ định
LEADING
giới hạn hoạt động cắt chỉ ở phần đầu của chuỗi:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(LEADING FROM ' Caribbean Island ') AS "Trimmed";
Kết quả:
+ ------------------------ + --------------------- + | Untrimmed | Cắt tỉa | + ------------------------ + --------------------- + | Đảo Caribe | Đảo Caribe | + ------------------------ + --------------------- +Chúng ta có thể thấy rằng các khoảng trắng vẫn tồn tại ở phía bên phải của chuỗi đã được cắt bớt. Chỉ phần bên trái bị cắt.
TRAILING
Đối sốChỉ định
TRAILING
giới hạn hoạt động cắt chỉ ở phần đầu của chuỗi:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(TRAILING FROM ' Caribbean Island ') AS "Trimmed";
Kết quả:
+ ------------------------ + --------------------- + | Untrimmed | Cắt tỉa | + ------------------------ + --------------------- + | Đảo Caribe | Đảo Caribe | + ------------------------ + --------------------- +Lần này, chỉ có phần bên phải được cắt. Dấu cách vẫn tồn tại ở bên trái của chuỗi đã cắt bớt.
Chỉ định một chuỗi để cắt
Dưới đây là một ví dụ về việc chỉ định ký tự nào cần cắt:
SELECT '...mountain...' AS "Untrimmed", TRIM('.' FROM '...mountain...') AS "Trimmed";
Kết quả:
+ ---------------- + ---------- + | Untrimmed | Cắt | + ---------------- + ---------- + | ... núi ... | núi | + ---------------- + ---------- +Nó không nhất thiết phải là một ký tự. Bạn có thể chỉ định bất kỳ chuỗi nào để cắt:
SELECT TRIM('.' FROM '.+.mountain.+.') AS "1", TRIM('.+' FROM '.+.mountain.+.') AS "2", TRIM('+.' FROM '.+.mountain.+.') AS "3", TRIM('.+.' FROM '.+.mountain.+.') AS "4";
Kết quả:
+ -------------- + -------------- + -------------- + - --------- + | 1 | 2 | 3 | 4 | + -------------- + -------------- + -------------- + - -------- + | + .mountain. + | .mountain. +. | . +. núi. | núi | + -------------- + -------------- + -------------- + - -------- +Bạn thậm chí có thể cắt bớt một phần của từ nếu muốn:
SELECT TRIM('moun' FROM 'mountain');
Kết quả:
+ ------------------------------ + | TRIM ('moun' TỪ 'núi') | + ------------------------------ + | tain | + ------------------------------ +Chúng tôi cũng có thể sử dụng
BOTH
,LEADING
vàTRAILING
đối số khi chỉ định chuỗi để cắt.Ví dụ:
SELECT TRIM(BOTH '.' FROM '...mountain...') AS "Both", TRIM(LEADING '.' FROM '...mountain...') AS "Leading", TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing";
Kết quả:
+ ---------- + ------------- + ------------- + | Cả hai | Dẫn đầu | Trailaing | + ---------- + ------------- + ------------- + | núi | núi ... | ... núi | + ---------- + ------------- + ------------- +Đối số rỗng
Nếu được cung cấp
null
đối số, kết quả lànull
:SELECT TRIM(null);
Kết quả:
+ ------------ + | TRIM (null) | + ------------ + | KHÔNG | + ------------ +Chế độ Oracle
Khi không đang chạy ở chế độ Oracle, nếu kết quả trống (tức là nó có độ dài bằng 0) thì kết quả là một chuỗi trống.
Tuy nhiên, khi chạy ở chế độ Oracle, kết quả là
null
.Đây là chế độ mặc định (tức là không trong chế độ Oracle):
SELECT TRIM('');
Kết quả:
+ ---------- + | TRIM ('') | + ---------- + | | + ---------- +Bây giờ, hãy chuyển sang chế độ Oracle:
SET SQL_MODE=ORACLE;
Và chạy lại mã:
SELECT TRIM('');
Kết quả:
+ ---------- + | TRIM ('') | + ---------- + | KHÔNG | + ---------- +Ngoài ra còn có một cách khác để làm điều này. Thay vì chuyển sang chế độ Oracle, bạn có thể sử dụng
TRIM_ORACLE()
như tên hàm.Hãy chuyển về chế độ mặc định:
SET SQL_MODE=DEFAULT;
Và bây giờ hãy chạy
TRIM_ORACLE()
:SELECT TRIM_ORACLE('');
Kết quả:
+ ----------------- + | TRIM_ORACLE ('') | + ----------------- + | NULL | + ----------------- +Thiếu đối số
Đang gọi
TRIM()
không có đối số dẫn đến lỗi:SELECT TRIM();
Kết quả:
ERROR 1064 (42000):Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn sử dụng tương ứng với phiên bản máy chủ MariaDB của bạn để biết cú pháp phù hợp để sử dụng gần ')' tại dòng 1