Mysql e la 'è'

lunedì 27 settembre 2010 - 22.47
Tag Elenco Tags  Windows XP  |  MySQL 5.1  |  Internet explorer 8.0  |  Opera  |  Firefox

aleocel Profilo | Newbie

Ciao a tutti, questo è il mio problema: ho un db con molte parole tra le quali la 'e' senza accento; non riesco ad inserire nè la 'è' nè la 'é'; inoltre, facendo una select con condizione " where nome='è' " (nome è il campo con la parola) mi dà come risultato il record con la 'e'; devo assolutamente inserire sia la è che la é e tenerle distinte nelle select, qualcuno mi sa aiutare? Grazie.

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>questo è il mio problema: ho un db con molte parole
>tra le quali la 'e' senza accento; non riesco ad inserire nè
>la 'è' nè la 'é';
Questo dipende dal charset che il client che fa la insert usa.
prova questo suggerimento:
http://forums.mysql.com/read.php?103,200551,200966#msg-200966

>inoltre, facendo una select con condizione
>" where nome='è' " (nome è il campo con la parola) mi dà come
>risultato il record con la 'e'; devo assolutamente inserire sia
>la è che la é e tenerle distinte nelle select, qualcuno mi sa aiutare?
Questo invece è un problema di collation. Probabilmente hai la Accent Insensitive e quindi gli accenti vengono ignorati dando spazio alle lettere senza. Puoi forzare la collation ad ogni statement:
http://dev.mysql.com/doc/refman/5.1/en/charset-collate.html

e queste sono le collation supportate da mysql:
http://dev.mysql.com/doc/refman/5.1/en/charset-charsets.html

>Grazie.
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

aleocel Profilo | Newbie

Grazie, oggi pomeriggio proverò e vi farò sapere.

aleocel Profilo | Newbie

Penso di aver risolto: ho provato con una tabella con CHARSET=latin1 COLLATE=latin1_general_ci e funzionano sia la insert che la select; ora però mi domando: avendo già una tabella con circa 40000 record, se cambio charset e collate rischio di perdere qualche record, molti record o di fare un disastro? Grazie.

alx_81 Profilo | Guru

>Penso di aver risolto: ho provato con una tabella con CHARSET=latin1
>COLLATE=latin1_general_ci e funzionano sia la insert che la select;
>ora però mi domando: avendo già una tabella con circa 40000 record,
>se cambio charset e collate rischio di perdere qualche record,
>molti record o di fare un disastro?
devi stare attento quando fai i confronti cross tabella..
perdere record no, solo che il charset cambia per quella tabella (a meno che non cambi quello del db interamente)
se poi la collation la cambi solo a livello di istruzione sql, quella ha validità solo di sessione.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5