Vấn đề:
Bạn muốn sắp xếp kết quả của một truy vấn SQL theo thứ tự tăng dần hoặc giảm dần.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên customer_information
với dữ liệu trong các cột id
, first_name
, last_name
và email_address
. Các địa chỉ email được người dùng điền theo cách thủ công và một số được nhập với các khoảng trắng không cần thiết do vô tình. Bạn muốn xóa khoảng trắng khỏi địa chỉ email.
id | first_name | last_name | email_address |
---|---|---|---|
1 | Calvin | Rios | [email protected] |
2 | Alan | Paterson | al an.paterson @ example.com |
3 | Kurt | Evans | [email protected] |
4 | Alex | Watkins | alex. [email protected] |
Giải pháp:
Chúng tôi sẽ sử dụng REPLACE
hàm số. Đây là truy vấn:
SELECT first_name, last_name, REPLACE(email_address, " ", "") AS correct_email_address FROM customer_information;
Đây là kết quả của truy vấn:
first_name | last_name | email_address |
---|---|---|
Calvin | Rios | [email protected] |
Alan | Paterson | [email protected] |
Kurt | Evans | [email protected] |
Alex | Watkins | [email protected] |
Thảo luận:
Sử dụng REPLACE
nếu bạn muốn thay thế tất cả các lần xuất hiện của một chuỗi con trong một chuỗi đã cho. Trong ví dụ của chúng tôi, chúng tôi thay thế các khoảng trắng không cần thiết bằng các giá trị trống.
Hàm này có ba đối số. Sau đây minh họa cú pháp của hàm:
REPLACE(string_expression, substring, new_substring)
Đối số đầu tiên là chuỗi mà chúng tôi muốn sửa đổi. Đối số thứ hai là chuỗi con được thay thế và đối số thứ ba là chuỗi mà chúng ta muốn sử dụng thay cho chuỗi con được thay thế. Chúng tôi loại bỏ các khoảng trắng không mong muốn trong ví dụ của mình, nhưng hàm có thể được sử dụng cho nhiều mục đích. Ví dụ, chúng tôi có thể muốn làm sạch và chuẩn hóa một cột số điện thoại. Chúng ta có thể sử dụng REPLACE
chức năng để làm như vậy.
Nếu bạn muốn xóa nhiều ký tự khỏi một chuỗi nhất định, chỉ cần lồng REPLACE
hoạt động lần thứ hai. Ví dụ:nếu bạn có một chuỗi có dấu cách và dấu gạch ngang không cần thiết, bạn có thể sử dụng cú pháp sau:
REPLACE(REPLACE(string_expression, " ", ""), "-", "")
Hãy nhớ rằng các đối số của hàm này trong MySQL có phân biệt chữ hoa chữ thường, vì vậy hãy cẩn thận với các chữ cái.