添加ORDER BY时MySQL查询崩溃,否则可以正常工作

时间:2019-01-24 18:03:17

标签: mysql join crash sql-order-by

我正在处理具有数千个条目的数据库,对于此特定查询,我希望对数据执行一些操作,然后按列对结果进行排序。 ORDER BY子句使数据库管理器永久加载,最终崩溃而未检索到任何结果,否则它将正常工作。

我尝试了以下查询:

SELECT m.*,
timediff(n.hora_origen,m.hora_destino) AS noproductivo,
timediff(m.hora_destino,m.hora_origen) AS productivo

FROM movimientos m JOIN movimientos n

ON m.usuario = n.usuario 
AND n.fecha_origen = m.fecha_origen 
AND n.id>m.id

这可以正常工作,但是,附加了ORDER BY子句的同一查询会导致数据库管理器崩溃,并且不会产生任何结果:

SELECT m.*,
timediff(n.hora_origen,m.hora_destino) AS noproductivo,
timediff(m.hora_destino,m.hora_origen) AS productivo

FROM movimientos m JOIN movimientos n

ON m.usuario = n.usuario 
AND n.fecha_origen = m.fecha_origen 
AND n.id>m.id

ORDER BY m.id

我需要对数据库结果进行排序,而不能将其排除在必需任务之外。

1 个答案:

答案 0 :(得分:0)

感谢所有回答的人,对不起我以前无法回答,我被告知要忘记此特定查询,因为我们的团队将专注于创建一个全新的数据库,因为该数据库的构建非常严格。我不到一个月前刚到这家公司,发现这样的数据库和代码相当混乱。因此,我们将从头开始。无论如何,谢谢您的回答。

说明:

如果有人对此问题感到好奇,我们会发现数据库的结构设计不佳,然后迫使我们创建过于复杂的查询,这是我们丢弃它的主要原因。

简单地说,糟糕的设计意味着真正的糟糕性能。我们将从头开始删除以前的开发人员的工作。