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

MySQL - tạo một hàm do người dùng xác định cho một loại tùy chỉnh

Bạn gặp một số vấn đề với chuỗi con của mình và việc chuyển thành int ở cuối khiến nó sắp xếp các giá trị có nhiều chữ số hơn ở cuối chứ không phải theo năm. Điều này sẽ hoạt động tốt hơn;

DELIMITER //

CREATE FUNCTION custom_sort(id VARCHAR(8))
    RETURNS VARCHAR(10)
    READS SQL DATA
    DETERMINISTIC
    BEGIN
        DECLARE year VARCHAR(2);
        DECLARE balance VARCHAR(6);
        DECLARE stringValue VARCHAR(10);
        SET year = SUBSTRING(id, 1, 2);
        SET balance = SUBSTRING(id, 3, 6);
        IF(year <= 96) THEN
            SET stringValue = CONCAT('20', year, balance);
        ELSE
            SET stringValue = CONCAT('19', year, balance);
        END IF;
        RETURN stringValue;
    END//

DELIMITER ;

Điều này có thể được đơn giản hóa một chút để;

DELIMITER //

CREATE FUNCTION custom_sort(id VARCHAR(8))
    RETURNS varchar(10)
    DETERMINISTIC
    BEGIN
        IF(SUBSTRING(id, 1, 2) <= '96') THEN
            RETURN CONCAT('20', id);
        ELSE
            RETURN CONCAT('19', id);
        END IF;
    END//

DELIMITER ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm cách nào để xuất cơ sở dữ liệu mysql bằng ssh?

  2. Cột không rõ ràng trong câu lệnh INNER JOIN

  3. Levenshtein:MySQL + PHP

  4. Hướng dẫn thiết kế cơ sở dữ liệu cho RBAC trong MySQL

  5. Nhận tất cả các bản ghi từ cơ sở dữ liệu MySQL trong Google Maps .getBounds?