ALTER TABLE ORDER BY str_to_date и time_to_sec - PullRequest
0 голосов
/ 22 декабря 2010

Я пытаюсь изменить порядок таблицы после импорта файла, но получаю ошибку синтаксиса mysql в этом запросе:

ALTER TABLE tablename ORDER BY str_to_date(date, '%m/%d/%Y'), time_to_sec(time) ASC

Может кто-нибудь увидеть что-то не так с этим?это ошибка, которую я получаю:

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

Ответы [ 5 ]

2 голосов
/ 22 декабря 2010

Согласно руководству по mysql, ALTER TABLE ORDER BY ожидает col_name, но вы пытаетесь упорядочить его с помощью функции.

Я предлагаю создать 2 новых столбца, заполнить их результатами функции, а затем упорядочить по ним.

1 голос
/ 22 декабря 2010

Возможно, вам придется использовать временную таблицу для этого, поскольку вы упорядочиваете функцию.

CREATE TABLE temp_tablename AS SELECT * FROM tablename;

TRUNCATE tablename;

INSERT INTO tablename SELECT * FROM temp_tablename;

DROP temp_tablename;

Вы можете сделать первое утверждение CREATE TEMPORARY TABLE, но если вы потеряете сеанс, вы потеряете ваши данные.

0 голосов
/ 11 июня 2012

Вы используете более старую версию mysql, STR_TO_DATE доступна только с версии 4.1.1 MySQL.

Обновление версии MySQL.

0 голосов
/ 22 декабря 2010

Я думаю, что решил эту проблему.Я сохранял импортированные данные во временной таблице перед перемещением в постоянную таблицу, и мне нужно было сначала отсортировать данные во временной таблице перед вставкой в ​​новую таблицу.поэтому вместо этого я вставляю в новую таблицу оператор SELECT, в котором есть оператор order by.

0 голосов
/ 22 декабря 2010

Вы пробовали

ALTER TABLE tablename ORDER BY date, time ASC

Я упоминаю об этом, потому что это может дать вам заказ, который вам нужен.

В противном случае вам нужно будет либо сделать то, что предложил немецкий Рамм, добавить столбцы с правильным типом данных или выполнить порядок при выполнении SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...