Saltar al contenido

Poner en mayúscula la primera letra. mysql

Al fin después de mucho batallar hemos encontrado el resultado de este rompecabezas que muchos usuarios de este sitio han presentado. Si deseas compartir algo más no dudes en compartir tu conocimiento.

Solución:

Es casi lo mismo, solo tienes que cambiar para usar la función CONCAT() en lugar del operador +:

UPDATE tb_Company
SET CompanyIndustry = CONCAT(UCASE(LEFT(CompanyIndustry, 1)), 
                             SUBSTRING(CompanyIndustry, 2));

esto se convertiría hello a Hello, wOrLd a WOrLd, BLABLA a BLABLAetc. Si desea escribir en mayúsculas la primera letra y en minúsculas la otra, solo tiene que usar la función LCASE:

UPDATE tb_Company
SET CompanyIndustry = CONCAT(UCASE(LEFT(CompanyIndustry, 1)), 
                             LCASE(SUBSTRING(CompanyIndustry, 2)));

Tenga en cuenta que UPPER y UCASE hacen lo mismo.

Vincents excelente respuesta para mayúsculas Primero Carta funciona muy bien para la primera letra solamente capitalización de una columna entera string..

PERO, ¿qué sucede si desea poner en mayúsculas la primera letra de CADA palabra? en las cadenas de una columna de la tabla?

por ejemplo: “Escuela secundaria de Abbeville”

No había encontrado una respuesta a esto en Stackoverflow. Tuve que improvisar algunas respuestas que encontré en Google para proporcionar una solución sólida al ejemplo anterior. No es una función nativa sino una función creada por el usuario que permite la versión 5+ de MySQL.

Si tiene el estado de usuario Super/Admin en MySQL o tiene una instalación mysql local en su propia computadora, puede crear una FUNCIÓN (como un procedimiento almacenado) que se encuentra en su base de datos y se puede usar en todas las consultas SQL futuras en cualquier parte del base de datos

La función que creé me permite usar esta nueva función que llamé “UC_Words” al igual que las funciones nativas integradas de MySQL para que pueda actualizar una columna completa como esta:

UPDATE Table_name
SET column_name = UC_Words(column_name) 

Para insertar el código de la función, cambié el delimitador estándar de MySQL (;) mientras creaba la función y luego lo restablecí a la normalidad después del script de creación de la función. Personalmente, también quería que la salida estuviera en UTF8 CHARSET.

Creación de función =

DELIMITER ||  

CREATE FUNCTION `UC_Words`( str VARCHAR(255) ) RETURNS VARCHAR(255) CHARSET utf8 DETERMINISTIC  
BEGIN  
  DECLARE c CHAR(1);  
  DECLARE s VARCHAR(255);  
  DECLARE i INT DEFAULT 1;  
  DECLARE bool INT DEFAULT 1;  
  DECLARE punct CHAR(17) DEFAULT ' ()[],[email protected];:?/';  
  SET s = LCASE( str );  
  WHILE i < LENGTH( str ) DO  
     BEGIN  
       SET c = SUBSTRING( s, i, 1 );  
       IF LOCATE( c, punct ) > 0 THEN  
        SET bool = 1;  
      ELSEIF bool=1 THEN  
        BEGIN  
          IF c >= 'a' AND c <= 'z' THEN  
             BEGIN  
               SET s = CONCAT(LEFT(s,i-1),UCASE(c),SUBSTRING(s,i+1));  
               SET bool = 0;  
             END;  
           ELSEIF c >= '0' AND c <= '9' THEN  
            SET bool = 0;  
          END IF;  
        END;  
      END IF;  
      SET i = i+1;  
    END;  
  END WHILE;  
  RETURN s;  
END ||  

DELIMITER ; 

Esto funciona de maravilla al generar las primeras letras en mayúsculas en varias palabras dentro de un string.

Suponiendo que su nombre de usuario de inicio de sesión de MySQL tenga suficientes privilegios; si no es así, y no puede configurar una base de datos temporal en su máquina personal para convertir sus tablas, pregúntele a su proveedor de alojamiento compartido si configurará esta función por usted.

Puedes usar una combinación de UCASE(), MID() y CONCAT():

SELECT CONCAT(UCASE(MID(name,1,1)),MID(name,2)) AS name FROM names;

Aquí puedes ver las reseñas y valoraciones de los usuarios

Puedes avalar nuestro trabajo fijando un comentario o puntuándolo te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *