×

Chuyển đổi ký tự thành mã ASCII với hàm ASCII() trong MySQL

Trong nhiều trường hợp, bạn có thể cần chuyển đổi ký tự thành mã ASCII để phục vụ cho việc phân tích hoặc xử lý dữ liệu. MySQL cung cấp một hàm rất hữu ích cho mục đích này, được gọi là ASCII(). Hàm này giúp bạn dễ dàng lấy được mã ASCII của bất kỳ ký tự nào trong câu lệnh SQL của mình. Hãy cùng tìm hiểu cách sử dụng hàm này một cách hiệu quả.

Cú pháp của hàm ASCII()

Hàm ASCII() có cú pháp rất đơn giản như sau:

ASCII(str)
  • str: Đây là chuỗi ký tự mà bạn muốn chuyển đổi. Thông thường, bạn chỉ cần truyền vào một ký tự để lấy mã ASCII tương ứng.

Ví dụ về cách sử dụng hàm ASCII()

  1. Chuyển đổi một ký tự đơn lẻ Giả sử bạn muốn lấy mã ASCII của ký tự 'A'. Bạn có thể sử dụng câu lệnh SQL như sau:

    SELECT ASCII('A');
    

    Kết quả trả về sẽ là 65, vì đó là mã ASCII của ký tự 'A'.

  2. Chuyển đổi ký tự đầu tiên của chuỗi ký tự Nếu bạn truyền vào một chuỗi dài hơn một ký tự, hàm ASCII() sẽ chỉ chuyển đổi ký tự đầu tiên trong chuỗi đó.

    SELECT ASCII('Hello');
    

    Kết quả sẽ là 72, vì 'H' là ký tự đầu tiên của chuỗi "Hello" và mã ASCII của 'H' là 72.

  3. Lấy mã ASCII của ký tự từ một cột trong bảng Bạn cũng có thể áp dụng hàm này trên các cột trong bảng để lấy mã ASCII tương ứng cho từng hàng dữ liệu.

    SELECT ASCII(customer_name) FROM customers;
    

    Điều này sẽ trả về mã ASCII của ký tự đầu tiên trong cột customer_name cho mỗi hàng dữ liệu trong bảng customers.

Sử dụng hàm ASCII() trong các ngữ cảnh khác

Hàm ASCII() còn có thể được sử dụng trong các trường hợp như so sánh, lọc dữ liệu, hay thậm chí trong các phép toán phức tạp hơn trong ứng dụng thực tế.

  1. Lọc dữ liệu dựa trên mã ASCII Bạn có thể sử dụng hàm ASCII() để lọc các hàng dựa trên mã ASCII của ký tự đầu tiên.

    SELECT * FROM customers WHERE ASCII(customer_name) > 75;
    

    Điều này sẽ trả về tất cả các hàng mà ký tự đầu tiên của customer_name có mã ASCII lớn hơn 75.

  2. So sánh chuỗi ký tự theo mã ASCII Đôi khi, việc so sánh trực tiếp các ký tự có thể mang lại kết quả khác biệt so với việc so sánh thông qua mã ASCII.

    SELECT * FROM customers WHERE ASCII(customer_name) = 65;
    

    Điều này sẽ trả về tất cả các hàng mà ký tự đầu tiên của customer_name là 'A', bởi vì 65 là mã ASCII của 'A'.

Một số lưu ý khi sử dụng hàm ASCII()

  • Nếu bạn truyền vào một chuỗi rỗng cho hàm ASCII(), hệ thống sẽ trả về 0.
  • Nếu ký tự được truyền vào là một tổ hợp byte (multibyte character), hàm ASCII() sẽ chỉ xử lý và trả về mã ASCII của byte đầu tiên.

Với những kiến thức trên, bạn có thể dễ dàng sử dụng hàm ASCII() để chuyển đổi ký tự thành mã ASCII trong nhiều ngữ cảnh khác nhau khi làm việc với MySQL. Điều này không chỉ giúp bạn phân tích và xử lý dữ liệu một cách hiệu quả mà còn mở ra nhiều khả năng mới trong việc quản lý và truy vấn dữ liệu.

Comments