Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę osiągnąć funkcjonalność initcap w MySQL?

Jakiś czas temu szukałem wbudowanej funkcji initcap/ucfirst w MySQL, ale niestety nie mogłem znaleźć takich funkcji ciągów, więc postanowiłem napisać własną ... dzięki członkowi społeczności MySQL, który poprawił błąd w mojej funkcji i odesłał go z powrotem .

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. Zatwierdź dane w kontenerze mysql

  2. Liczenie wszystkich postów należących do kategorii ORAZ jej podkategorii

  3. Zaimportuj i wstaw plik sql.gz do bazy danych za pomocą programu putty

  4. Wstaw do bazy danych (mysql) za pomocą Ajax i PHP

  5. Błąd 2006:serwer MySQL zniknął przy użyciu Pythona, Bottle Microframework i Apache