Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Znaki "äüö", "大" w zapytaniu match/against
Forum PHP.pl > Forum > Bazy danych > MySQL
JohnySpot
Hej mam tabelę, której struktura wygląda tak

  1. CREATE TABLE IF NOT EXISTS `search_records` (
  2. `id` int(9) NOT NULL AUTO_INCREMENT,
  3. `item_id` int(9) DEFAULT NULL,
  4. `dirty` tinyint(1) DEFAULT '1',
  5. `data` longtext,
  6. PRIMARY KEY (`id`),
  7. KEY `item_id` (`item_id`),
  8. FULLTEXT KEY `data` (`data`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
  10.  
  11. INSERT INTO `search_records` (`id`, `item_id`, `dirty`, `data`) VALUES (1, 3, 0, ' äüö.gif äüö');


Wyszukiwanie FULLTEXT z grubsza w niej działa jednak gdy w zapytaniu pojawi się wcześniej podany ciąg:

  1. SELECT * FROM `search_records` WHERE MATCH (`search_records`.`data`) AGAINST ('äüö' IN BOOLEAN MODE)


zapytanie nie zawraca żadnych wyników, choć powinno. To samo się dzieje ze znakiem "大" (rekord z nim oczywiście znajduje się w bazie.
erix
Jakie masz ustawione kodowanie dla połączenia?
JohnySpot
Wszystko testuję w phpmyadmin, który zwraca informację: Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8).
W my.ini mam

Kod
character-set-server=utf8
collation-server=utf8_general_ci


  1. SET NAMES 'utf8';
  2. SELECT *
  3. FROM `search_records`
  4. WHERE MATCH (
  5. `search_records`.`data`
  6. )
  7. AGAINST (
  8. 'äüö'
  9. IN BOOLEAN MODE);


Też nic nie zwraca.

Pytanie - czy Tobie działa ?
erix
Ale przy wstawianiu też masz wywołać to samo zapytanie. ;] (set names...)
JohnySpot
  1. SET NAMES 'utf8';
  2. INSERT INTO `test` (`data`) VALUES ('äüö äüö.gif');


i select nadal nic nie zwraca. (też z set names)

erix
Hmm, wiesz co? Spróbuj kodowania binary albo utf8_binary.
JohnySpot
Zmieniłem typ pól na utf8_bin i porównywania w tabeli też na utf8_bin i nic.
Może spróbuj erix u siebie i podaj rozwiązanie tongue.gif Ja mam już dość.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.