Wie kann ich die Sortierung von UTF8 auf latin1 einer kompletten Datenbank mit Tabellen und Felder ändern? Bei der Anlegung habe ich die falsche Sortierung gewählt. Ich hoffe man kann das mit einem Befehl für die kompletten Datenbank machen und ich muss nicht in jede Tabelle gehen und dort die Sortierung in den Felder ändern.
Sortierung einer kompl. Datenbank ändern
Einklappen
X
-
Stichworte: -
-
PHP-Code:$result = mysql_query('SHOW tables');
while (row = mysql_fetch_assoc($result)) {
alter-table-query
}
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
-
das mit der while schleife und php gefällt mir schon ganz gut. ich finde es nämlich ziemlich stressig die änderung über das pma zu machen. habe die datenbank geändert, leider wurden dann aber nicht auf einmal die tabellen geändert, also habe ich die tabelle auch noch einzeln erfaßt und geändert, aber auch hier wurden dann die felder nicht geändert. gibt es denn wirklich keine möglichkeit die änderung über das pma durchzuführen, dann aber für die datenbank, tabellen und felder gleicherzeitig? muss ich wirklich in jedes einzelne feld und den wert ändern?
Kommentar
-
exportiere doch einfach die komplette db, per search&replace änderst du die Kollation im kompletten Dump und danach importierst du alles wieder
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
-
sehr gute idee, zwar auch nicht immer die beste, da der sql dump über 5 mb hat mit daten und ich aber über pma nur max. 2 mb hochladen kann, aber das ist besser als mit dem script.
welches charset und collation verwendet ihr? ich habe da ständig probleme damit. manchmal weder umlaute nicht richtig importiert, dann kann ich über pma nicht mehr suchen etc...
was ist die beste einstellung? vielen dank für eure antwort..
Kommentar
-
utf8_unicode_ci
Wenn Umlaute kaputt sind, hast du was beim Exportieren oder Importieren falsch gemacht, das ist aber vollkommen unabhängig von der Kollation.
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
-
ich weiss nicht ob es dir weiter hilft, aber ich arbeite gerne mit utf8 und sortirung von utf8 war immer ein wenig zieckig.
da ich in meinem db als russische als auch die deutsche worter habe, erstellte ich extra 2 tabellen, wo es nur die Buchstaben von einer sprache und dazugehörige nummer im alphabet abgespeichert habe.
also eine Tabelle für deutsch und eine für russisch.
buchstabe | alphabetnummer
wenn ich die Texte für eine bestimmt sprache sortieren wollte(leider nur nach erster Buchstabe, was mir eigentlich ausreichte)
dann habbe ich die Tabell mit
...inner join sprachtabelle on left(textspalte,1)=sprachtabelle.buchstabe
order by sprache.alphabetnummerSlava
bituniverse.com
Kommentar
-
also in den importdateien stehen die umlaute... ich habe immer
CREATE TABLE ...
...CHARSET=utf8
verwendet. Werde es dann mal mit
CHARSET=utf8_unicode_ci
Kommentar
-
komisch... habe gerade...
PHP-Code:CREATE TABLE `_imp_manufacturers2` (
`manufacturers_id` int(11) NOT NULL auto_increment,
`manufacturers_name` varchar(32) NOT NULL default '',
PRIMARY KEY (`manufacturers_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8_unicode_ci COLLATE=utf8_unicode_ci AUTO_INCREMENT=21 ;
PHP-Code:#1115 - Unknown character set: 'utf8_unicode_ci'
Kommentar
-
Original geschrieben von bweichel
#1115 - Unknown character set: 'utf8_unicode_ci'
http://dev.mysql.com/doc/refman/4.1/...t-general.htmlI don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
ok, das geht... ist das dann auch so richtig? also habe ich jetzt die gleichen einstellungen wie du?
PHP-Code:CREATE TABLE `_imp_manufacturers2` (
`manufacturers_id` int(11) NOT NULL auto_increment,
`manufacturers_name` varchar(32) NOT NULL default '',
PRIMARY KEY (`manufacturers_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=21
Kommentar
-
ich habe soeben mal versucht in einem feld etwas zu suchen... um genau zu sein, in einem varchar-feld... jetzt kommt folgende meldung...
PHP-Code:MySQL meldet:
#1267 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'like'
Kommentar
-
Willkommen in der bweichel-Show, der Show mit dem, wo sich immer nur im Kreis drehen tut ...I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
jo, genau... im kreis... dann antworte doch auch mal... ich peil`s halt nicht... und dann könnte man ja schon mal helfen... oder? ich habe überall charset und die collation entsprechend eingestellt... überall... es steht nix anderes mehr drin... jetzt meine frage ob es auch sein kann das die bereits importieren daten noch mit der alten sortierung versehen sind... ansonsten kann ich mir es nicht erklären woher der illegale mix kommen soll... danke...
Kommentar
Kommentar