php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2005, 11:33  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard MySQL 4.x - SELECT `feld` LIKE 'ä' - Fehlerhaft

Hallo!

Ich habe einen MySQL Server der Version 4.1 und folgende Problematik:

Ich habe eine Tabelle `user` mit Benutzernamen drin. In dieser Tabelle gibt es auch User mit Umlauten. Bisher war es kein Problem und lief in der 3.23.x-Version auch alles einwandfrei. Nach dem Update kam es jedoch vor, dass sich nach dem User "Bömmel" auch ein User "Bommel" registriert hat. Dieser kann jedoch keine Mails empfangen, also suchte ich nach dem Fehler: Es ist ansich alles soweit in Ordnung, es wird mit folgendem Befehl die UID ausgelesen (als Mail-Empfänger):

Code:
SELECT `UID` FROM `user` WHERE `username`='Bommel' LIMIT 0, 1
Falsch daran ist garnichts. Ich habe also mal die Abfrage genommen und im phpMyAdmin ausgeführt. Dabei habe ich dann die UID vom User "Bömmel" erhalten, anstelle von "Bommel". Ohne "LIMIT 0, 1" gab er mir dann beide User aus ("Bömmel" und "Bommel"). Somit war klar, warum jedesmal die UID von "Bömmel" ausgegeben wurde: Er steht in der Tabelle "vor" "Bommel". ABER: Warum sucht MySQL nun beim Suchstring "`username`='Bommel'" auch den User "Bömmel" raus? ich habe in der Doku zu MySQL leider nur gefunden, dass ab der Version 4.0 mit latin_de Die Sortierung korrekt ausgeführt wird (mit deutschen Umlauten). Ich vermute daher, dass da irgendwo der Hund begraben liegt!? Wie kann ich es jetzt wieder so machen, dass er nur "Bommel" ausliest und nicht beide User? Hat jemand das selbe Problem schon gehabt und eine Lösung gefunden?

Danke schonmal im Voraus
MrNiceGuy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.03.2005, 12:44  
Gast
 
Beiträge: n/a
Standard

Mit diesen Creates funktioniert das problemlos:
Code:
CREATE DATABASE `test` DEFAULT CHARACTER SET latin1 COLLATE latin1_german2_ci;


CREATE TABLE `t1` (`id` int(11) NOT NULL auto_increment,
                   `name` varchar(255) collate latin1_german2_ci NOT NULL default '',
                    PRIMARY KEY  (`id`))
                    ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci
Gruß
phpfan
  Mit Zitat antworten
Alt 25.03.2005, 14:13  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Ahhhh! Danke! Ich hatte als Charset latin1_german1_ci (War irgendwie standardmäßig so eingestellt!?)! Mit german2 funktioniert es einwandfrei! Aber unlogisch ist es schon ein wenig!?

Danke für die Hilfe!
MrNiceGuy ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mysql LIKE problem nullskill Datenbanken 25 25.06.2008 14:49
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] Mysql Insert Select + Concat Hu5eL Datenbanken 14 10.06.2008 10:39
MySQL und select sven88 PHP Tipps 2008 5 30.05.2008 16:47
komplizierte SQL-Abfrage keinplanvonnix PHP Tipps 2008 3 23.04.2008 15:42
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Like ohne Mysql Das Devil PHP Tipps 2006 4 20.08.2006 18:58
Queries fehlerhaft nach MySQL Update 4/5 BlueMood Datenbanken 3 16.08.2006 10:53
[Erledigt] [gelöst] MySQL abfrage eingrenzen anhand einer SELECT Auswah Datenbanken 13 01.12.2004 18:42
mysql verknüpfte abfrage mqs PHP Tipps 2004-2 2 22.11.2004 13:05
SELECT * FROM usertable WHERE nick like usernick? Wie??? PHP Tipps 2004-2 1 18.11.2004 20:08
select ... LIKE "%bla%" - gross und kleinschreibun Datenbanken 4 07.10.2004 12:52
Multiple Select in einen Feld in MYSQL einfügen Datenbanken 4 22.09.2004 18:15
MySQL select in einer Tabelle ausgeben PHP Tipps 2004 2 11.09.2004 18:22
[Erledigt] mysql SELECT Anfrage PHP Tipps 2004 6 03.09.2004 13:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql select umlaute, php mysql select umlaute, sql select umlaute, mysql like umlaute, mysql select like umlaute, sql select sonderzeichen, mysql select sonderzeichen, http://www.php.de/datenbanken/20162-mysql-4-x-select-feld-like-ae-fehlerhaft.html, select umlaute, mysql select where like, select like umlaut, mysql umlaute select, mysql select like, php mysql umlaute select, mysql select umlaut, mysql like umlaut, mysql select feld, sql like umlaute, mysql select feldname, mysql select sonderzeichen php

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.