MySQL - order by problem
2 отговора
72 прегледа
MySQL - order by problem
Prawq select zaqwka i podrejdane na rezultata po azbu4en red: order by lastname (towa e ime na 4owek) i rezultata se podrejda po azbu4en red kato sled glawnite se podrejdat malite bukwi. - A...B...C..........Y..Z...a...b...c........y..z
Nqkoi znae li kak moje da se naprawi order by kato rez. se podrejda po azbu4en red no malkite da sa zaedno s glawnite t.e da nqma razlika mejdu glawni i malki.
Nqkoi znae li kak moje da se naprawi order by kato rez. se podrejda po azbu4en red no malkite da sa zaedno s glawnite t.e da nqma razlika mejdu glawni i malki.
Re: MySQL - order by problem
AMi probwaj taka, ne che e mnogo barzo, zashtoto slagash funciq w ORER BY, ama shte raboti ;)
---------------------------------------------------------------
SELECT lastname, firstname, other_fields
FROM your_table
ORDER BY LOWER(lastname)
--------------------------------------------------------------
note: trqbwa obache da si setnesh na mysql-a charset=cp1251 ;)
---------------------------------------------------------------
SELECT lastname, firstname, other_fields
FROM your_table
ORDER BY LOWER(lastname)
--------------------------------------------------------------
note: trqbwa obache da si setnesh na mysql-a charset=cp1251 ;)
Re: MySQL - order by problem
Това което искаш е сортирането по подразбиране за CHAR, VARCHAR и TEXT.
Очевидно преи теб е дефинирано като BINARY
mysql> show create table ord;
+-------+---------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------+
| ord | CREATE TABLE `ord` (
`i` char(4) default NULL
) TYPE=MyISAM |
+-------+---------------------------------------------------------------+
mysql> select * from ord order by i;
+------+
| i |
+------+
| A |
| a |
| A |
| b |
| B |
| B |
+------+
Забележи, че дори A и a са подредени в случаен ред - както и трябва да бъде.
alter table ord modify column i char(4) binary;
mysql> select * from ord order by i;
+------+
| i |
+------+
| A |
| A |
| B |
| B |
| a |
| b |
+------+
Ето го твоя ефект
salle.online.bg/sig
Очевидно преи теб е дефинирано като BINARY
mysql> show create table ord;
+-------+---------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------+
| ord | CREATE TABLE `ord` (
`i` char(4) default NULL
) TYPE=MyISAM |
+-------+---------------------------------------------------------------+
mysql> select * from ord order by i;
+------+
| i |
+------+
| A |
| a |
| A |
| b |
| B |
| B |
+------+
Забележи, че дори A и a са подредени в случаен ред - както и трябва да бъде.
alter table ord modify column i char(4) binary;
mysql> select * from ord order by i;
+------+
| i |
+------+
| A |
| A |
| B |
| B |
| a |
| b |
+------+
Ето го твоя ефект
salle.online.bg/sig