Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按订单显示错误_Mysql_Sql - Fatal编程技术网

Mysql 按订单显示错误

Mysql 按订单显示错误,mysql,sql,Mysql,Sql,我创建了表并插入了一些值 create table deposit1_groupc_tja05 ( Account_id number(25), Account_type varchar(25), Balance number(9,2) not null, Transaction_amount number(9,2) not null, Transaction_Date varchar(50), Transaction_type varchar(25) ) 现在我需要

我创建了表并插入了一些值

create table deposit1_groupc_tja05
(
  Account_id number(25),
  Account_type varchar(25),
  Balance number(9,2) not null,
  Transaction_amount number(9,2) not null,
  Transaction_Date varchar(50),
  Transaction_type varchar(25)
) 
现在我需要按交易日期订购?
我如何更改它?

无法按照您描述的方式排列表格

如果要按顺序选择数据,请使用以下命令

SELECT * 
FROM deposit1_groupc_tga05
ORDER BY Transaction_Date

您还应该在MySQL的默认存储引擎InnoDB中创建事务日期为datetime的表,该表总是按照主键(即聚集索引)的顺序存储

在您展示的示例中,您没有声明主键,因此InnoDB将由一个不可见的主键排序,因此存储顺序将是插入行的顺序

您可以使用ALTERTABLE声明主键。这将按主键对存储进行重新排序。如果使用事务_Date(varchar),它将按字母顺序排列,而不是按日期排列。如果希望按日期排序,则应使用日期数据类型

如果希望给定的查询结果集按主键之外的另一列排序,那么只需使用
orderby
子句即可。结果集的顺序可以与表的存储顺序不同


如果在查询中不使用
orderby
子句,则结果集通常没有保证的顺序(根据SQL标准),这取决于实现。在InnoDB的情况下,仍然不能保证它总是以这种方式工作,但实际上,在当前版本中,不使用ORDER BY的查询会按照从索引(可能是聚集索引/主键)读取行的顺序返回行。

如果无法将事务日期列更改为datetime,然后,您需要在查询中按如下方式转换日期:

SELECT * FROM deposit1_groupc_tga05
ORDER BY STR_TO_DATE(Transaction_Date, '%c/%e/%Y %H:%i')

或者,根据插入日期的格式,您需要更改格式字符串。

SELECT*FROM deposit1\u groupc\u tja05 ORDER BY Transaction\u date
RDBMS中的行表示无序集。如果需要订单,则在查询数据集时必须包含订单。顺便说一句,以您的方式命名的表经常显示出设计不好的症状。没有选择。这个概念是meaningless@Pravin:为什么要将
事务\u日期
存储为
varchar
?向我们展示这些文本事务日期的样子。顺便说一下,停止将日期存储为文本。实现不是抽象。OP没有说他们想订购存储设备。而且也不能保证没有ORDER BY的查询的结果集的顺序与存储顺序无关。@philipxy,实际上,OP的问题很模糊,我想我们不会从他们那里得到任何澄清。