Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL]Zapytanie mysql błąd z CONCAT
arzach
post
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Witam mam takie zapytanie
  1. SELECT CONCAT( REPEAT( ' ', (COUNT(parent.name) - 1) ), node.name) AS name
  2. FROM nested_category AS node,
  3. nested_category AS parent
  4. WHERE node.lft BETWEEN parent.lft AND parent.rgt
  5. GROUP BY node.name
  6. ORDER BY node.lft;

i gdy je wykonuje wywala mi taki błąd

Kod
#1267 - Illegal mix of collations (utf8_unicode_ci,COERCIBLE) and (latin2_general_ci,IMPLICIT) for operation 'concat'


Wie ktoś czemu tak sie dzieje ?

Ten post edytował arzach 21.02.2009, 20:28:44
Go to the top of the page
+Quote Post
erix
post
Post #2





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




Cytat
Illegal mix of collations

Porównywane kolumny mają zadeklarowane różne zestawy znaków.


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

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
arzach
post
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Zrobilem przyklad z tej strony
http://dev.mysql.com/tech-resources/articl...hical-data.html

Jak moge sie pozbyć tego błedu ?
Go to the top of the page
+Quote Post
erix
post
Post #4





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




Masz w phpMyAdmin okno tabeli. Tam masz wyświetlone kolumny. W którymś polu jest zestaw znaków.

Musisz doprowadzić do takiej sytuacji, aby obie podstawione przez Ciebie do concat używały tego samego kodowania.


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

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
arzach
post
Post #5





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


No przecierz są takie same. Chodzi o jedną kolumne name i tam mam Metoda porównywania napisów latin2_general_ci
Kod
category_id int(11)   Nie  auto_increment              
name varchar(20) latin2_general_ci  Nie                
lft int(11)   Nie                
rgt int(11)   Nie


A tutaj kod który dodaje tą tabele
  1. CREATE TABLE category(
  2. category_id INT AUTO_INCREMENT PRIMARY KEY,
  3. name VARCHAR(20) NOT NULL,
  4. parent INT DEFAULT NULL);



Pomoże ktoś ?

Ten post edytował arzach 21.02.2009, 20:45:36
Go to the top of the page
+Quote Post
Daimos
post
Post #6





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


w pierwszej masz latin2_general_ci
w drugiej kodowanie utf z tego co widac wczesniej
musisz edytowac te pola i zrobic identycznie


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
arzach
post
Post #7





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Mam tylko tak
name varchar(20) latin2_general_ci
wiec co mam zmienic ?

Ten post edytował arzach 21.02.2009, 20:52:29
Go to the top of the page
+Quote Post
Daimos
post
Post #8





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


  1. ALTER TABLE `category` CHANGE `name` `name` VARCHAR( 20 ) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
arzach
post
Post #9





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Nic to nie dało dalej to samo

.
Go to the top of the page
+Quote Post
erix
post
Post #10





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




Dla dwóch kolumn w CONCAT ustaw te same zestawy znaków w PMA. Nieważne, czy latin, czy utf, ale mają być jednakowe.


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

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
arzach
post
Post #11





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Ale to jest jedna i ta samu kolumna ale poprzedzona aliasem
  1. CONCAT( REPEAT( ' ', (COUNT(parent.name) - 1) ), node.name) AS name

gdzie parent to alias i node tej samej kolumny
Wiec jak mam to zrobić ?

Pomoże ktoś ?

.
Go to the top of the page
+Quote Post
Daimos
post
Post #12





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


ustaw dla tych pol to samo kodowanie, przeciez od poczatku Ci piszemy
nie wiesz jak to zrobic? to w phpmyadmin tez mozna
struktura-> edytujesz pole i wybierasz kodowanie
w obydwu ma byc takie samo
nie pisz ze pola sa identyczne, bo jakby byly, to by dzialalo, a wyraznie pisze w bledzie, ze kodowanie jest rozne snitch.gif


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
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 Aktualny czas: 20.08.2025 - 08:49