所以我开始使用MYSQL进行编码,我有一个类似于
的表CREATE TABLE IF NOT EXISTS `my_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`school_division` int(11) DEFAULT NULL,
`name` varchar(255) NOT NULL,
`email` text NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=32 ;
现在我想在该课程页面中显示最近加入的班级学生。我该怎么做?我尝试了以下内容。
"SELECT * FROM my_users WHERE school_division={$divsion} ORDER BY 'id' DESC LIMIT 0 , 5";
但它的上市只是该班的前五名学生。这些学生是第一批加入的用户。我怎样才能得到最后5位加入的学生?
答案 0 :(得分:2)
使用date
代替id
:
"SELECT * FROM my_users WHERE school_division={$divsion} ORDER BY 'date' DESC LIMIT 0 , 5";
答案 1 :(得分:2)
按日期降序排序:
"SELECT * FROM my_users WHERE school_division={$divsion} ORDER BY 'date' DESC LIMIT 0 , 5";
答案 2 :(得分:1)
列id
是auto_increment
列。因此,通过查询该列的最后五个最高值,可以轻松地检索最后五个用户。 date
列明确排序是多余的。
答案 3 :(得分:0)
您应该按日期而不是ID排序,例如:
$sql = "SELECT * FROM `my_users` WHERE `school_division`='".$divsion."' ORDER BY `date` DESC LIMIT 0 , 5"
或者,如果你以某种方式必须在id上订购...按id升序而不是降序执行订单。
答案 4 :(得分:0)
按日期排序不是id
“SELECT * FROM my_users WHERE school_division = {$ divsion} ORDER BY'date'DESC LIMIT 0,5”;
答案 5 :(得分:0)
我认为应该是
ORDER BY `id` DESC
不是分号