Sử dụng dấu gạch chéo ngược để thoát khỏi các dấu nháy đơn là một kỹ thuật thường được sử dụng để đảm bảo rằng các dấu nháy đơn không cản trở việc xử lý chuỗi đầy đủ của MySQL.
Dấu ngoặc kép được sử dụng để bao quanh một chuỗi, vì vậy, một dấu ngoặc kép trong chính chuỗi có thể gây ra sự tàn phá nếu nó không được thoát đúng cách. Chỉ cần chèn một dấu gạch chéo ngược ngay trước dấu ngoặc kép đảm bảo rằng MySQL không kết thúc chuỗi sớm.
Tuy nhiên, có thể có những trường hợp bạn muốn dấu gạch chéo ngược vẫn còn. Ví dụ:bạn có thể định sử dụng chuỗi trong một câu lệnh SQL và do đó, bạn muốn nó được thoát đúng cách trước.
Đây là nơi chứa QUOTE()
chức năng đi kèm.
MySQL QUOTE()
hàm trích dẫn một chuỗi để tạo ra một kết quả có thể được sử dụng như một giá trị dữ liệu thoát đúng cách trong một câu lệnh SQL. Chuỗi được trả về kèm theo dấu ngoặc kép và với mỗi trường hợp dấu gạch chéo ngược (\
), một trích dẫn ('
), ASCII NUL
và Control + Z đứng trước dấu gạch chéo ngược.
Cú pháp của hàm QUOTE ()
Đây là cách thực hiện cú pháp:
QUOTE(str)
Ở đâu str
là chuỗi thoát (đã).
Ví dụ
Một ví dụ có thể giải thích điều này tốt hơn giải thích của tôi:
SELECT QUOTE('Don\'t!') AS Result;
Kết quả:
+-----------+ | Result | +-----------+ | 'Don\'t!' | +-----------+
Thoạt nhìn, bạn có thể nghĩ "nhưng không có gì xảy ra - kết quả hoàn toàn giống như lập luận". Tuy nhiên, đó chính xác là lý do tại sao chức năng này hữu ích. Nếu chúng tôi chưa sử dụng QUOTE()
chức năng, đây là những gì sẽ xảy ra:
SELECT 'Don\'t!' AS Result;
Kết quả:
+--------+ | Result | +--------+ | Don't! | +--------+
Vì vậy, bằng cách sử dụng QUOTE()
, chúng tôi giữ lại các dấu nháy đơn và dấu gạch chéo ngược.
Tất nhiên, trong nhiều trường hợp, đây chính là điều bạn muốn. Trong nhiều trường hợp, dấu gạch chéo ngược và dấu ngoặc kép xung quanh nên được gỡ bỏ. Nhưng có thể có một số trường hợp bạn muốn chính xác những gì QUOTE()
chức năng cho bạn.
Phương án thay thế
QUOTE()
hàm giúp bạn không phải làm những việc như thế này:
SELECT '''Don\\\'t!''' AS Result;
Kết quả:
+-----------+ | Result | +-----------+ | 'Don\'t!' | +-----------+
Vì vậy, nó giúp chúng ta không phải sử dụng ba dấu ngoặc kép cho mỗi câu trích dẫn và ba dấu gạch chéo ngược cho mỗi dấu gạch chéo ngược.