Melhores respostas de 'collation' - Stack Overflow em Português
Respostas interessantes marcadas com a tag collation
Basta isso: SHOW CREATE TABLE nomedatabela E da base de dados: SHOW CREATE DATABASE Syntax A saída é algo assim: CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `s` char(60) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 --^^^^^^-- Aqui é o Charset padrão. Se alguma coluna foi ...
respondida 13/03/17 às 13:04
Pode listar o collation de cada tabela de uma determinada tabela usando o information_schema, da seguinte forma: SELECT table_name, table_collation FROM information_schema.tables WHERE table_schema = 'nome_da_base' Caso precise retornar o collation de cada coluna pode usar essa consulta: SELECT column_name, data_type, collation_name FROM ...
respondida 13/03/17 às 13:10
Bom, vou fazer uma pergunta porque a partir da resposta do Guilherme Nascimento eu achei a resposta. O problema não e um problema de COLLATE mas um problema entre Mysql et PHP. Sabemos que PHP não usa utf8. Foi previsto para PHP6 mas vai 'teoricamente" acontecer somente em PHP7. Vamos então ver como fazer um site em utf8 para entender a dificuldade. No ...
Aparentemente o problema ocorre especificamente com o latin1_general_ci (conforme este link): latin1_general_ci: Não há distinção entre letras maiúsculas e minúsculas. Buscando por teste, registros como Teste ou TESTE serão retornados. latin1_swedish_ci: Não distingue letras minúsculas e maiúsculas e nem caracteres acentuados e com cedilha, ou seja, o ...
A ordem lexicográfica ou Collation é muito relativo a lingua e alfabeto que você está utilizando, e digamos é um problema distinto a questão do escolha adequada de um Charset, por esse já foi resolvido pelo UNICODE. Pela sua duvida eu recomendo uma leitura essencial: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About ...
A resposta para esse dilema vai depender do foco da aplicação, assim como todo aplicativo que precisa lidar com particularidades de algum tipo de cultura (data, hora, idioma, fuso, etc...). No caso mais específico da sua dúvida, o idioma e o enconde usado. Pois são os fatores que vão orientar você no conjunto de caracteres que você quer tratar. Isso fica ...
Dizes que as duas bases (bases de dados) têm a collation, o mais provável então é que as colunas que estás a utilizar na tua query, têm uma collation diferente do default da base de dados. Em qualquer caso podes ajustar a tua instrução da seguinte forma para ultrapassar o problema: SELECT ID FROM tbl_a a INNER JOIN tbl_b b ON a.campo1 = b.campo1 COLLATE ...
respondida 10/07/15 às 15:14
Os dados armazenados no Banco de Dados tem que estar num formato que guarde as informações necessárias sem ambiguidade, mas não tem que ter relação nenhuma com como a sua aplicação apresenta esses dados para o usuário. Nesse caso, o collate só diz para o banco de dados quais regras ele vai usar nas operações de ordenação - isso é order by. O formato que ...
respondida 28/06/19 às 13:34
Tem uma solução com shell: DB="dbname" ( echo 'ALTER DATABASE `'"$DB"'` CHARACTER SET utf8 COLLATE utf8_general_ci;' mysql "$DB" -e "SHOW TABLES" --batch --skip-column-names \ | xargs -I{} echo 'ALTER TABLE `'{}'` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) \ | mysql "$DB" Obs: Troque o dbname por sua database Em uma linha ...