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

Làm cách nào để đạt được chức năng initcap trong MySQL?

Một thời gian trở lại đây, tôi đang tìm kiếm một hàm initcap / ucfirst tích hợp sẵn trong MySQL nhưng tiếc là không thể tìm thấy các hàm chuỗi như vậy nên tôi đã quyết định viết riêng .. cảm ơn thành viên cộng đồng MySQL đã sửa lỗi trong hàm của tôi và đăng nó trở lại .

DELIMITER $$

DROP FUNCTION IF EXISTS `test`.`initcap`$$

CREATE FUNCTION `initcap`(x char(30)) RETURNS char(30) CHARSET utf8
READS SQL DATA
DETERMINISTIC
BEGIN
SET @str='';
SET @l_str='';
WHILE x REGEXP ' ' DO
SELECT SUBSTRING_INDEX(x, ' ', 1) INTO @l_str;
SELECT SUBSTRING(x, LOCATE(' ', x)+1) INTO x;
SELECT CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(@l_str,1,1)),LOWER(SUBSTRING(@l_str,2)))) INTO @str;
END WHILE;
RETURN LTRIM(CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(x,1,1)),LOWER(SUBSTRING(x,2)))));
END$$

DELIMITER ;


Usage: 

select initcap('This is test string');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hạn chế một cột chỉ chấp nhận 2 giá trị

  2. Joomla! 3 lần cài đặt bị đóng băng khi tạo bảng cơ sở dữ liệu

  3. Kết nối với MariaDB từ ứng dụng Java trong NetBeans trên Linux (Mageia)

  4. mySql sao chép các hàng vào cùng một bảng với giá trị khóa đã thay đổi (không ghi đè hiện có)

  5. Đang điền danh sách Php thả xuống từ cơ sở dữ liệu mysql