Dickes Problem mit MySQL und PHPMyAdmin. Abfragen auf Tabellen mit Umlauten beim WHERE Kriterium
Ihr meint diese Abfrage birgt kein Problem - dann bitte eintreten !! SELECT * FROM `test` WHERE `testfeld` LIKE '%ü%'
Hallo zusammen,
so langsam verzweifle ich.
Anfangs hatte ich das Problem, dass Formulareingaben, die ich über PHP verarbeitet und dann in die Datenbank geschrieben habe, auf Grund des verwendeten Zeichensatzes verstümmelt wurden. Das habe ich durch ein anpassen des Zeichensatzes nach UTF-8 gelöst.
Jetzt möchte ich auch gerne nach Inhalten in meiner Datenbank filtern. Dabei ist mir aufgefallen, dass wahrscheinlich MySQL oder PHPMyAdmin wohl ein Problem hat, oder ich hier etwas falsch verstehe.
Folgende Abfrage gibt IMMER JEGLICHE Datensätze der Tabelle "test" aus.
Anscheinend wird das ü entweder als Asterisk behandelt oder MYSQL macht hier ein ... '%u%' daraus...???
Nachfolgend ein DUMP der Tabelle, wo ihr sehen könnt, dass lediglich ein Datensatz ausgegeben werden dürfte!
Wer kann mir das Problem bei seiner eigenen Konfiguration bestätigen oder sogar die Lösung für dieses Problem geben? Ich möchte gerne auch nach Umlauten filtern / suchen können...
Gruß
Markus
DUMP:
Hallo zusammen,
so langsam verzweifle ich.
Anfangs hatte ich das Problem, dass Formulareingaben, die ich über PHP verarbeitet und dann in die Datenbank geschrieben habe, auf Grund des verwendeten Zeichensatzes verstümmelt wurden. Das habe ich durch ein anpassen des Zeichensatzes nach UTF-8 gelöst.
Jetzt möchte ich auch gerne nach Inhalten in meiner Datenbank filtern. Dabei ist mir aufgefallen, dass wahrscheinlich MySQL oder PHPMyAdmin wohl ein Problem hat, oder ich hier etwas falsch verstehe.
Folgende Abfrage gibt IMMER JEGLICHE Datensätze der Tabelle "test" aus.
SELECT * FROM `test` WHERE `testfeld` LIKE '%ü%'
Nachfolgend ein DUMP der Tabelle, wo ihr sehen könnt, dass lediglich ein Datensatz ausgegeben werden dürfte!
Wer kann mir das Problem bei seiner eigenen Konfiguration bestätigen oder sogar die Lösung für dieses Problem geben? Ich möchte gerne auch nach Umlauten filtern / suchen können...
Gruß
Markus
DUMP:
-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 02. September 2008 um 15:11
-- Server Version: 5.0.51
-- PHP-Version: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Datenbank: `projektdb`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `test`
--
CREATE TABLE `test` (
`testfeld` text collate utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Daten für Tabelle `test`
--
INSERT INTO `test` (`testfeld`) VALUES
('Datenöbernähme mit Ö und Ä'),
('Schlümmeräsch mit Ü und Ä');
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 95909
Url: https://administrator.de/contentid/95909
Ausgedruckt am: 24.11.2024 um 06:11 Uhr
2 Kommentare
Neuester Kommentar
Moin problemsolver,
richtiger wäre gewesen:
CHARACTER SET latin1 COLLATE latin1_german2_ci;
Vergleiche die Beispiele auf
9.1.5.6. Examples of the Effect of Collation (in der mySQL-Referenz)
Mit dem von Dir gewählten Zeichensatz ist es wirklich so:
Grüße
Biber
richtiger wäre gewesen:
CHARACTER SET latin1 COLLATE latin1_german2_ci;
Vergleiche die Beispiele auf
9.1.5.6. Examples of the Effect of Collation (in der mySQL-Referenz)
Mit dem von Dir gewählten Zeichensatz ist es wirklich so:
...oder MYSQL macht hier ein ... '%u%' daraus...???
Grüße
Biber