2010-02-07 1 views
2

http://new.monmouthchineseschool.com/curriculum/cantonese/textbook.php
, если вы посмотрите на 'C1'Как мой SQL-запрос не сортирует столбец?

一 十 十一 十二 十三 二 三 四 五 六 七 八 九

, который, как все ссылки выглядят ,
это MySQL БД для этого класса

CREATE TABLE IF NOT EXISTS `mon_textbook` (
    `id` int(11) NOT NULL auto_increment, 
    `class` varchar(255) NOT NULL, 
    `ch` varchar(255) NOT NULL, 
    `sTitle` varchar(255) NOT NULL, 
    `fTitle` varchar(255) NOT NULL, 
    `text` longtext NOT NULL, 
    UNIQUE KEY `id` (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=117 ; 

-- 
-- Dumping data for table `mon_textbook` 
-- 

INSERT INTO `mon_textbook` (`id`, `class`, `ch`, `sTitle`, `fTitle`, `text`) VALUES 
(14, 'C1', '1', '一', '第一課', ''), 
(15, 'C1', '2', '二', '第二課', ''), 
(16, 'C1', '3', '三', '第三課', ''), 
(17, 'C1', '4', '四', '第四課', ''), 
(18, 'C1', '5', '五', '第五課', ''), 
(19, 'C1', '6', '六', '第六課', ''), 
(20, 'C1', '7', '七', '第七課', ''), 
(21, 'C1', '8', '八', '第八課', ''), 
(22, 'C1', '9', '九', '第九課', ''), 
(23, 'C1', '10', '十', '第十課', ''), 
(24, 'C1', '11', '十一', '第十一課', ''), 
(25, 'C1', '12', '十二', '第十二課', ''), 
(26, 'C1', '13', '十三', '第十三課', ''); 

SQL-запроса, который называет его

$sql = 'SELECT * FROM '.dbPre.'textbook WHERE `class`="'.$textbookClass[$ii].'" ORDER BY `ch` ASC'; 

вместо того чтобы смотреть, как, как она выше, он должен выглядеть следующим образом

一 二 三 四 五 六 七 八 八 八 十三 十三 十三

ответ

4

Ваш столбец ch содержит строки, и они сортируются, но буквенно-цифровые, а не численные. Ваш результат в этом порядке '1 10 11 12 13 2 3 4 ...'

Либо замените свой столбец ch на целочисленный тип, либо отделите его на целое число в ORDER BY. Я бы порекомендовал первое.

+0

И как вы можете обнаружить числа и декодировать их в форме таких изображений? Я могу только обнаружить первые 5 чисел 1 2 3 4 5 – osgx