Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Znaki "äüö", "大" w zapytaniu match/against
JohnySpot
post 18.08.2009, 05:59:20
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

Ostrzeżenie: (0%)
-----


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.

Ten post edytował JohnySpot 18.08.2009, 06:00:12


--------------------
Go to the top of the page
+Quote Post
erix
post 18.08.2009, 10:38:53
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jakie masz ustawione kodowanie dla połączenia?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
JohnySpot
post 18.08.2009, 18:21:27
Post #3





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował JohnySpot 18.08.2009, 19:33:19


--------------------
Go to the top of the page
+Quote Post
erix
post 18.08.2009, 18:26:02
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale przy wstawianiu też masz wywołać to samo zapytanie. ;] (set names...)


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
JohnySpot
post 18.08.2009, 19:39:01
Post #5





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

Ostrzeżenie: (0%)
-----


  1. SET NAMES 'utf8';
  2. INSERT INTO `test` (`data`) VALUES ('äüö äüö.gif');


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



--------------------
Go to the top of the page
+Quote Post
erix
post 18.08.2009, 19:54:03
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Hmm, wiesz co? Spróbuj kodowania binary albo utf8_binary.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
JohnySpot
post 19.08.2009, 16:42:32
Post #7





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

Ostrzeżenie: (0%)
-----


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ść.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 01:34