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

Trộn một chuỗi với mysql / sql

Của bạn đây:

DELIMITER //

DROP FUNCTION IF EXISTS shuffle //

CREATE FUNCTION shuffle(
    v_chars TEXT
)
RETURNS TEXT
NOT DETERMINISTIC -- multiple RAND()'s
NO SQL
SQL SECURITY INVOKER
COMMENT ''
BEGIN
    DECLARE v_retval TEXT DEFAULT '';
    DECLARE u_pos    INT UNSIGNED;
    DECLARE u        INT UNSIGNED;

    SET u = LENGTH(v_chars);
    WHILE u > 0
    DO
      SET u_pos = 1 + FLOOR(RAND() * u);
      SET v_retval = CONCAT(v_retval, MID(v_chars, u_pos, 1));
      SET v_chars = CONCAT(LEFT(v_chars, u_pos - 1), MID(v_chars, u_pos + 1, u));
      SET u = u - 1;
    END WHILE;

    RETURN v_retval;
END;
//

DELIMITER ;

SELECT shuffle('abcdef');

Xem sqlfiddle.com cho đầu ra.

Đã kiểm tra thành công với mariadb 10.1 (tương đương với mysql 5.6)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo người dùng trên MySQL

  2. Truy cập cơ sở dữ liệu MySQL bằng c # trên thống nhất?

  3. Mysql:nhiều bảng hay một bảng lớn?

  4. c9.io - cách tìm địa chỉ máy chủ để tạo kết nối mysql trong nền tảng node.js

  5. Khi nào sử dụng SELECT ... FOR UPDATE?