首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALTER TABLE ORDER BY str_to_date和time_to_sec

问ALTER TABLE ORDER BY str_to_date和time_to_sec
EN

Stack Overflow用户
提问于 2010-12-22 06:40:30
回答 5查看 850关注 0票数 0

我试图在导入文件后对表进行重新排序,但在此查询中遇到mysql语法错误:

代码语言:javascript
复制
ALTER TABLE tablename ORDER BY str_to_date(date, '%m/%d/%Y'), time_to_sec(time) ASC

有人能看出这有什么问题吗?这是我得到的错误:

代码语言:javascript
复制
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(date, '%m/%d/%Y'), time_to_sec(time) ASC' at line 1
EN

回答 5

Stack Overflow用户

发布于 2010-12-22 06:46:03

根据mysql手册,ALTER TABLE ORDER BY需要一个col_name,但您正在尝试使用函数对其进行排序。

我建议创建两个新列,用函数结果填充它们,然后按它们排序。

票数 2
EN

Stack Overflow用户

发布于 2010-12-22 06:55:20

您可能需要使用临时表,因为您是按函数排序的。

代码语言:javascript
复制
CREATE TABLE temp_tablename AS SELECT * FROM tablename;

TRUNCATE tablename;

INSERT INTO tablename SELECT * FROM temp_tablename;

DROP temp_tablename;

您可以将第一条语句设置为CREATE TEMPORARY TABLE,但是如果您丢失了会话,那么您的数据就会丢失。

票数 1
EN

Stack Overflow用户

发布于 2010-12-22 06:44:12

你试过了吗

ALTER TABLE tablename ORDER BY date, time ASC

我提到这一点是因为它可能会给你你需要的订单。

否则,您将需要按照德国Rumm的建议进行操作,使用正确的数据类型添加列,或者在执行SQL时进行排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4504630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档