Как правило, соглашение будет заключаться в том, чтобы не использовать скобки в операторе return, поскольку это не функция. В этом случае синтаксический анализатор будет просто полностью игнорировать скобки.
Кортежи обычно выражаются скобками для повышения удобочитаемости, однако они не требуются.
В конечном счете, однако, они все функции идентичны, и это сводится к предпочтению.
Ядро вашей проблемы похоже на сопоставление столбцов в файле CSV с таковыми в таблице.
Многие графические mySQL-клиенты имеют очень приятные диалоговые окна импорта для такого рода вещей.
Моим любимым для работы является Windows на основе HeidiSQL . Он предоставляет графический интерфейс для сборки команды LOAD DATA
; вы можете повторно использовать его программно позже.
Снимок экрана: диалог «Импорт текстового файла»
Чтобы открыть диалоговое окно «Импорт текстового файла», перейдите к Tools > Import CSV file
:
Используйте mysqlimport для загрузки таблицы в базу данных:
mysqlimport --ignore-lines=1 \
--fields-terminated-by=, \
--local -u root \
-p Database \
TableName.csv
Я нашел ее в http://chriseiffel.com/everything-linux/how -to-import-a-large-csv-file-to-mysql /
Чтобы сделать вкладку разделителя табуляцией, используйте --fields-terminated-by='\t'
mysqlimport
использует LOAD DATA INFILE...
за кулисами, так что это почти то же самое.
– Mladen Jablanović
1 December 2014 в 09:21
LOAD DATA INFILE
, вам нужно создать таблицу, прежде чем вы сможете использовать mysqlimport
.
– Marcus Downing
9 June 2015 в 10:47
LOAD DATA INFILE
.
– Mladen Jablanović
18 April 2016 в 13:21
--fields-optionally-enclosed-by=\"
и `--fields-escaped-by = \`
– chaintng
7 July 2017 в 03:50
Самый простой способ, которым я импортировал 200+ строк, ниже команды в phpmyadmin sql window
У меня есть простая таблица страны с двумя столбцами CountryId, CountryName
здесь .csv данные [/g0]
здесь: команда:
LOAD DATA INFILE 'c:/country.csv'
INTO TABLE country
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
Помните, что во второй колонке никогда не появляется, иначе ваш импорт остановится
LOAD DATA LOCAL INFILE
. Если это выдает ошибку, 1148 «используемая команда не разрешена», вы можете включить ее, запустив mysql в командной строке с помощью --local-infile
.
– David Kennedy
15 April 2015 в 04:45
Попробуйте это, это сработало для меня
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' IGNORE 1 ROWS;
IGNORE 1 ROWS здесь игнорирует первую строку, которая содержит имена полей. Обратите внимание, что для имени файла вы должны ввести абсолютный путь к файлу.
Вы также можете попробовать этот онлайн-инструмент для создания операторов SQL create / insert на основе вашего CSV. http://www.convertcsvtomysql.com/
Что мне нравится в этом инструменте:
Недостатки
Я знаю, что вопрос старый , но я хотел бы поделиться этим
blockquote>. Я использовал этот метод для импорта более 100 тыс. записей ( ~ 5 МБ) в 0.046 сек
Вот как вы это делаете:
LOAD DATA LOCAL INFILE 'c:/temp/some-file.csv' INTO TABLE your_awesome_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (field_1,field_2 , field_3);
Очень важно включить последнюю строку, если у вас более одного поля, т.е. обычно оно пропускает последнее поле (MySQL 5.6.17)
LINES TERMINATED BY '\n' (field_1,field_2 , field_3);
Тогда, если вы считаете, что первая строка является заголовком для ваших полей, вы можете включить эту строку также
IGNORE 1 ROWS
Это выглядит так, как если бы в вашем файле была строка заголовка.
LOAD DATA LOCAL INFILE 'c:/temp/some-file.csv' INTO TABLE your_awesome_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS (field_1,field_2 , field_3);
Вы можете исправить это, указав столбцы в инструкции LOAD DATA. Из руководства :
LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
... поэтому в вашем случае вам нужно указать 99 столбцов в том порядке, в котором они отображаются в файле csv.
Вот пример снимка экрана excel file:
Сохранить как и выбрать .csv.
И у вас будет как показано ниже. CSV-экран данных, если вы открываете с помощью блокнота ++ или любого другого блокнота.
Убедитесь, что вы удалите заголовок и разместите его. csv как в таблице mysql. Замените имя_папки на имя вашей папки
LOAD DATA LOCAL INFILE 'D: /folder_name/myfilename.csv' INTO TABLE mail ПОЛЯ, ПРЕРЫВАННАЯ ',' (fname, lname, email, phone);
Если большие данные, вы можете взять кофе и загрузить его.
Это все, что вам нужно.
phpMyAdmin может обрабатывать импорт CSV. Вот шаги:
Это примечание, которое я подготовил для моего будущего использования и поделился здесь, если кому-то может помочь.
NULL
в CSV для любых автоматически увеличивающих полей / столбцов.
– silver
24 March 2015 в 09:52
Еще одно решение - использовать инструмент csvsql из удивительного набора csvkit .
Пример использования:
csvsql --db mysql://$user:$password@localhost/$database --insert --tables $tablename $file
Этот инструмент может автоматически выводить типы данных (поведение по умолчанию), создавать таблицу и вставлять данные в созданную таблицу. Опция --overwrite
может использоваться для удаления таблицы, если она уже существует. --insert
- для заполнения таблицы из файла.
pip install csvkit
Предварительные требования: python-dev
, libmysqlclient-dev
, MySQL-python
apt-get install python-dev libmysqlclient-dev
pip install MySQL-python
Измените имя сервера, имя пользователя, пароль, имя dbname, путь к вашему файлу, имя_таблицы и поле, которое находится в вашей базе данных, которую вы хотите вставить
blockquote><?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "bd_dashboard"; //For create connection $conn = new mysqli($servername, $username, $password, $dbname); $query = "LOAD DATA LOCAL INFILE 'C:/Users/lenovo/Desktop/my_data.csv' INTO TABLE test_tab FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES (name,mob)"; if (!$result = mysqli_query($conn, $query)){ echo '<script>alert("Oops... Some Error occured.");</script>'; exit(); //exit(mysqli_error()); }else{ echo '<script>alert("Data Inserted Successfully.");</script>' } ?>
PHP Query для импорта csv-файла в базу данных mysql
$query = <<<EOF
LOAD DATA LOCAL INFILE '$file'
INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(name,mobile,email)
EOF;
if (!$result = mysqli_query($this->db, $query))
{
exit(mysqli_error($this->db));
}
** Пример данных файла CSV **
name,mobile,email
Christopher Gritton,570-686-3439,ChristopherKGritton@inbound.plus
Brandon Wilson,541-309-5149,BrandonMWilson@inbound.plus
Craig White,516-795-8065,CraigJWhite@inbound.plus
David Whitney,713-214-3966,DavidCWhitney@inbound.plus
Командная строка mysql подвержена слишком большому количеству проблем при импорте. Вот как вы это делаете:
Если вы используете MySQL Workbench (в настоящее время версия 6.3), вы можете сделать это с помощью:
Если вы используете машину Windows с загруженной электронной таблицей Excel, новый плагин mySql в Excel является феноменальным. Люди в Oracle действительно хорошо справились с этим программным обеспечением. Вы можете напрямую подключиться к базе данных из Excel. Этот плагин будет анализировать ваши данные и настраивать таблицы для вас в формате, совместимом с данными. У меня были некоторые файлы csv больших монстров данных для преобразования. Этот инструмент был большой экономии времени.
http://dev.mysql.com/downloads/windows/excel/
Вы можете делать обновления из Excel, которые будут заполняться в базе данных онлайн. Это очень хорошо работало с файлами mySql, созданными на ультра дешевом хостинге GoDaddy. (Обратите внимание, что когда вы создаете таблицу в GoDaddy, вам нужно выбрать некоторые нестандартные настройки, чтобы отключить доступ к базе данных в базе данных ...)
С помощью этого плагина у вас есть чистая интерактивность между вашей электронной таблицей XL и онлайн-хранилище данных mySql.