Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL tách các ký tự không phải số để so sánh

Tôi nhận ra rằng đây là một chủ đề cổ xưa nhưng khi truy cập vấn đề này, tôi không thể tìm thấy một giải pháp đơn giản (tôi đã nhìn thấy các đặc vụ đáng kính nhưng nghĩ rằng đây là một giải pháp đơn giản hơn) vì vậy đây là một chức năng tôi đã viết, có vẻ hoạt động khá tốt.

DROP FUNCTION IF EXISTS STRIP_NON_DIGIT;
DELIMITER $$
CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255))
   RETURNS VARCHAR(255)
BEGIN
   DECLARE output   VARCHAR(255) DEFAULT '';
   DECLARE iterator INT          DEFAULT 1;
   WHILE iterator < (LENGTH(input) + 1) DO
      IF SUBSTRING(input, iterator, 1) IN ( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ) THEN
         SET output = CONCAT(output, SUBSTRING(input, iterator, 1));
      END IF;
      SET iterator = iterator + 1;
   END WHILE;
   RETURN output;
END
$$


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng câu lệnh CASE trong MySQL

  2. Làm cách nào để lưu trữ GUID trong các bảng MySQL?

  3. Cách sử dụng GROUP_CONCAT trong CONCAT trong MySQL

  4. Lưu trữ dữ liệu trong MySQL dưới dạng JSON

  5. Ví dụ về LOCALTIME - MySQL