Eu tenho uma tabela quando eu seleciono da tabela eu tenho os dados inválidos como
mysql> select budgetID,StartDate,modifiedBy from Table_name order by budgetID desc limit 10;
+----------+---------------------+----------------------+
| budgetID | StartDate | modifiedBy |
+----------+---------------------+----------------------+
| 364 | $091-24-68 27:49:32 | -9187343239835811836 |
| 363 | NULL | -9187343239835811840 |
| 362 | $091-24-69 14:21:19 | -9187343239835811840 |
| 361 | $091-24-69 14:21:19 | -9187343239835811840 |
| 360 | $091-24-69 14:21:19 | -9187343239835811840 |
| 359 | $091-24-69 14:21:19 | -9187343239835811840 |
| 358 | �301-32-83 19:54:95 | -9187343239835811840 |
| 357 | �301-32-83 19:54:95 | -9187343239835811840 |
| 356 | $091-24-69 05:61:82 | -9187343239835811840 |
| 355 | �301-32-83 10:95:58 | -9187343239835811840 |
+----------+---------------------+----------------------+
eu inseri os valores para budgetID=365 como
budgetID 351
StartDate 2012-02-01 00:00:00
modifiedBy 1055
mas ao selecionar o resultado, estou obtendo uma saída inválida.
onde budgetID é a chave primay bigint e StartDate é datetime e modifyBy bigint.
E
mysql> show variables like "%character%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> show variables like "%colla%";
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
Qual pode ser o problema por trás disso.?
quando criei uma tabela com a mesma estrutura dessa tabela e inseri o registro então a consulta select está mostrando resultado OK.
Com base na codificação padrão do banco de dados, character_set_database=latin1 , você deve forçar seu cliente a usar latin1. Seu cliente está atualmente em utf8 e o banco de dados parece estar em latin1. Isso pressupõe que sua tabela também esteja usando latin1.
Para garantir que seus dados sejam armazenados corretamente no MySQL, você pode forçar o cliente mysql a usar latin1.
1 Forçar o cliente a usar latin1
Em seguida, execute sua instrução SELECT para verificar a formatação do caractere
2 Faça backup do banco de dados usando latin1
Você também pode despejar o banco de dados usando a mesma opção
Em seguida, você pode visualizar o arquivo de despejo nameofthedatabase.sql usando um editor de texto padrão como textpad ou gedit para ver se os caracteres estão codificados corretamente.
Collation é um conjunto de regras que determinam como as linhas são classificadas e como são comparadas. O agrupamento não afeta a codificação, que é o problema que você está tendo no momento.
Se ambas as opções ainda fornecerem símbolos estranhos, o arquivo de importação pode não ter sido formatado corretamente em primeiro lugar.