2016-01-06 14 views
1

Я загрузил файл csv в mySQL, используя команду локальной загрузки данных загрузки. Когда я просматриваю таблицу, строки находятся в другом порядке, чем файл csv. Есть ли способ заставить их быть в одном порядке.Таблица не в том же порядке mySQL

+0

Использовать 'ORDER BY column_name', чтобы заказать результат запроса – RiggsFolly

+1

SQL представляет * неупорядоченные * множества. Если вы хотите заказать результаты в таблице, вам нужно указать, какой столбец можно заказать. – Siyual

ответ

2

В реляционных таблицах базы данных нет никакого неотъемлемого «ордера». Если вы хотите просмотреть строки в определенном порядке, вы должны использовать пункт ORDER BY в своем заявлении SELECT. Если вы просматриваете данные через некоторый интерфейс, то пользовательский интерфейс должен обеспечивать эту функциональность (или нет).

3

Таблицы SQL представляют собой неупорядоченные множества. Заказов нет. Однако есть трюк. Я предполагаю, что вы используете load data infile. Определите таблицу, чтобы иметь столбец идентификаторов автоинкрементных:

create table . . . (
    tableId int auto_increment primary key, 
    . . . 
); 

Затем, при загрузке данных из файла в таблицу, вы можете перечислить все поля для tableId (или полей, за исключением подходящее). И явно используйте set testId = NULL.

Затем вы можете получить доступ к таблице с помощью:

select t.* 
from t t 
order by tableId; 

К сожалению, я никогда не нашел в документации, что это гарантируется приращение идентификаторов в порядке вставки. Я действительно считаю, что это работает на практике.

+0

Я хотел бы иметь mySQL в том же порядке, что и таблица Excel. – Crt

+2

@Crt. , , Я предполагаю, что вы используете 'load data infile'. Если нет, просто добавьте столбец в электронную таблицу с явным упорядочением и не забудьте включить это в предложение 'order by', когда вы извлекаете данные. –

Смежные вопросы