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

REPLACE không phân biệt chữ hoa chữ thường cho MySQL

Đây rồi:

DELIMITER $$

DROP FUNCTION IF EXISTS `replace_ci`$$
CREATE FUNCTION `replace_ci` ( str TEXT,needle CHAR(255),str_rep CHAR(255))
    RETURNS TEXT
    DETERMINISTIC
    BEGIN
        DECLARE return_str TEXT DEFAULT '';
        DECLARE lower_str TEXT;
        DECLARE lower_needle TEXT;
        DECLARE pos INT DEFAULT 1;
        DECLARE old_pos INT DEFAULT 1;

        SELECT lower(str) INTO lower_str;
        SELECT lower(needle) INTO lower_needle;
        SELECT locate(lower_needle, lower_str, pos) INTO pos;
        WHILE pos > 0 DO
            SELECT concat(return_str, substr(str, old_pos, pos-old_pos), str_rep) INTO return_str;
            SELECT pos + char_length(needle) INTO pos;
            SELECT pos INTO old_pos;
            SELECT locate(lower_needle, lower_str, pos) INTO pos;
        END WHILE;
        SELECT concat(return_str, substr(str, old_pos, char_length(str))) INTO return_str;
        RETURN return_str;
END$$

DELIMITER ;

Cách sử dụng:

$sql = "
    UPDATE timeline 
    SET message = replace_ci(message,'".$targetuserold."', '".$targetusernew."')
";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chèn vào thủ tục được lưu trữ với các tham số MYSQL không hoạt động

  2. java.lang.Incomp Tương thíchClassChangeError:Đã tìm thấy lớp com.mysql.jdbc.Statement, nhưng giao diện được mong đợi

  3. MySQL LEFT JOIN, GROUP BY và ORDER BY không hoạt động theo yêu cầu

  4. Thay thế các giá trị nulls trong sql bằng cách sử dụng câu lệnh select trong mysql?

  5. JSON_SET () - Chèn hoặc cập nhật giá trị trong tài liệu JSON trong MySQL