我有一个包含大量数据的SQL表,我必须在网页中显示它们。你可以找到它here。顺便说一下,数据必须以这种方式显示:
我的代码工作正常,因为第1点满意,因为列表从最高点(99,999)的人到最小点(50,000)的人。我有另一个问题。
我需要用99,999分对人们进行排序。事实上,如果你看一下我在第2点链接的图片,右边的表格按照按时间顺序排序的记录(99,999),但左边的表格没有。
<?php
$a=mysqli_connect("localhost","username","password","my_mk7vrlist");
$res= mysqli_query($a,"SELECT * FROM 0_vrs_europe ORDER BY `vrs` DESC, `date` DESC LIMIT 0 , 150");
while($row = mysqli_fetch_array($res))
{
//here I print the rows of my html table
}
mysqli_close($a);
?>
这是我为左边的表编写的代码,它没有按时间顺序排序。特别是我想到了这个:
ORDER BY `vrs` DESC, `date` DESC
使用此代码,表格将根据vrs以低级顺序显示,但具有99,999 VR的人员未按正确的时间顺序排序。你可以帮帮我吗?
我的表中日期为varchar
的列。
答案 0 :(得分:1)
您如何存储日期?如果你像字符串一样保存它们,那么order_by desc将不起作用。您需要将值保存为时间戳,或者在执行查询时将其转换为时间戳。
请参阅:mySQL convert varchar to date
要考虑您的字符串格式进行选择,请参阅以下内容中的“说明符”部分: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
假设您的字段名称为日期。
select date_format(str_to_date(date, '%D %M %Y'), '%D %M %Y');
从我给你的链接:
%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%M Month name (January..December)
%Y Year, numeric, four digits
答案 1 :(得分:1)
您的日期列属于VARCHAR
类型,因此MySQL会将其视为字符串并对其进行排序。如果您想按日期排序,则必须将列类型更改为DATE
或DATETIME
。