Почему мой SQL-запрос не сортирует столбец? - PullRequest
2 голосов
/ 07 февраля 2010

http://new.monmouthchineseschool.com/curriculum/cantonese/textbook.php
если вы посмотрите на «С1»

100 6 6 100 100 100 100 100 100 1006 *

так выглядят все ссылки.
это база данных 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';

вместо того, чтобы выглядеть, как наверху, оно должно выглядеть так

9 101 101 101 101 101 101 1019 *

1 Ответ

4 голосов
/ 07 февраля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...