【发布时间】:2020-08-31 14:01:28
【问题描述】:
我想按字段对表中的数据进行重新排序。
我知道的唯一方法是创建一个新表并将旧表中的所有数据(主键 id 除外)传递给按 id_temp 排序的新表:
INSERT INTO db1.ticket id_temp, text, answer_timestamp, mileage , distance_unit,
troubles, error_codes, controls, answer_text, answer_pdf, answer_pdf_link,
estimated_duration, real_duration, delete_operator_id, request_type_id,
request_properties_id, category_id, operator_id, language_id, deleted_at,
created_at, updated_at
SELECT (id_temp, text, answer_timestamp, mileage, distance_unit, troubles,
error_codes, controls, answer_text, answer_pdf, answer_pdf_link,
estimated_duration, real_duration, delete_operator_id, request_type_id,
request_properties_id, category_id, operator_id, language_id, deleted_at,
created_at, updated_at)
FROM db1.ticket_temp order by id_temp;
不过这个方法在我看来很重。
这是另一种在不创建新表的情况下对表中的数据进行重新排序的方法吗?
【问题讨论】:
-
去掉
SELECT (id_temp, ....) FROM的括号 -
FWIW 它与 MySQL 版本无关。以您的方式使用括号会在任何版本的 MySQL(或任何其他 SQL 实现)上导致相同的错误。
-
您已将此问题的标题更改为与原始问题完全无关的内容。原来的问题是一个旧问题的副本,这个问题现在已经结束了。你应该问一个新问题。