Alguém sabe o equivalente a este TSQL no jargão do MySQL?
Estou tentando colocar a primeira letra de cada entrada em maiúscula.
UPDATE tb_Company SET CompanyIndustry = UPPER(LEFT(CompanyIndustry, 1))
+ SUBSTRING(CompanyIndustry, 2, LEN(CompanyIndustry))
mysql
string
capitalize
Queixo
fonte
fonte
A excelente resposta da Vincents para a primeira letra maiúscula funciona muito bem para a primeira letra apenas em maiúscula de uma string de coluna inteira.
MAS e se você quiser maiúscula a primeira letra de CADA palavra nas strings de uma coluna da tabela?
por exemplo: "Abbeville High School"
Eu não tinha encontrado uma resposta para isso no Stackoverflow. Tive de juntar algumas respostas que encontrei no Google para fornecer uma solução sólida para o exemplo acima. Não é uma função nativa, mas uma função criada pelo usuário que o MySQL versão 5+ permite.
Se você tem status de usuário Super / Admin no MySQL ou tem uma instalação local do mysql em seu próprio computador, você pode criar uma FUNÇÃO (como um procedimento armazenado) que fica em seu banco de dados e pode ser usado em todas as consultas SQL futuras em qualquer parte do db.
A função que criei me permite usar esta nova função que chamei de "UC_Words", assim como as funções nativas integradas do MySQL para que eu possa atualizar uma coluna completa como esta:
Para inserir o código da função, alterei o delimitador padrão do MySQL (;) enquanto criava a função e, em seguida, redefini-lo ao normal após o script de criação da função. Eu também queria que a saída fosse em UTF8 CHARSET.
Criação de função =
Isso funciona como um tratamento para a saída de primeiras letras maiúsculas em várias palavras em uma string.
Assumindo que seu nome de usuário de login do MySQL tem privilégios suficientes - se não, e você não pode configurar um banco de dados temporário em sua máquina pessoal para converter suas tabelas, pergunte ao seu provedor de hospedagem compartilhada se ele definirá esta função para você.
fonte
CHARSET utf8_general_ci
deve ser alterado paraCHARSET utf8
(pelo menos em 5,7)Illegal mix of collations for operation 'concat'
então eu acho que apenas consertar o conjunto de caracteres ou removê-lo e torná-lo padrão.Você pode usar uma combinação de
UCASE()
,MID()
eCONCAT()
:fonte
SELECT CONCAT(UCASE(MID('TEST',1,1)),MID('TEST',2));
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_mid
fonte
http://forge.mysql.com/tools/tool.php?id=201
Se houver mais de 1 palavra na coluna, isso não funcionará conforme mostrado abaixo. A UDF mencionada acima pode ajudar nesse caso.
Ou talvez este ajude ...
https://github.com/mysqludf/lib_mysqludf_str#str_ucwords
fonte
Isso está funcionando bem.
fonte
fonte
CRIE UMA FUNÇÃO:
USE A FUNÇÃO
fonte
fonte
Isso deve funcionar bem:
fonte
fonte
A afirmação acima pode ser usada para a primeira letra em CAPS e as restantes como minúsculas.
fonte
Uso algo simples assim;)
fonte