php - 为什么我的 SQL 查询没有对列进行排序?

标签 php mysql encoding

http://new.monmouthchineseschool.com/curriculum/cantonese/textbook.php
如果你看一下“C1”

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

这就是所有链接的样子。
这是该类的 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';

它应该看起来像这样,而不是像上面那样

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

最佳答案

您的 ch 列包含字符串,它们是按字母数字排序的,而不是按数字排序。您的结果按以下顺序排列:“1 10 11 12 13 2 3 4 ...”

ch 列更改为整数类型,或者将其转换为 ORDER BY 中的整数。我推荐前者。

关于php - 为什么我的 SQL 查询没有对列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2215535/

相关文章:

php - php中的手机型号检测

java - 如何使用数据库php MySQL验证登录输入

php - 在不求助于 mysql_insert_id() 的情况下,在单个查询中将 SQL 关系插入到 2 个表

python - MySQL语句中的语法错误是什么?

c# - Python3 中的字符串长度与文件和复制粘贴不同

windows - 为什么 Windows 使用 ANSI 代码页而不是 UNICODE?

php - Mysqli 转换的类未关闭且无法工作

java - 使用 Google OAuth 2.0 验证桌面客户端应用程序

Spring 表单和 UTF-8 错误编码

php - XAMPP - 无法发送虚拟电子邮件