Проверка внешнего списка на наличие дубликатов в таблице MySQL? - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть таблица MySQL и файл Excel. Я хотел бы обновить таблицу MySQL, включив в нее информацию из файла Excel, что просто - просто напишите быструю формулу для каждой строки, которая создает соответствующий оператор SQL.

Но сначала я бы хотел убедиться, что все данные соответствуют друг другу. Так что, если данная строка имеет WidgetID 1001, я хотел бы проверить, есть ли этот WidgetID в таблице MySQL. Для данной строки это просто - просто сгенерируйте оператор SQL

SELECT COUNT(*) FROM mytable WHERE WidgetID = "1001"

и выполните его. Но как я могу проверить все строки без вставки в команды по одной? По сути, я хочу что-то вроде

If (SELECT COUNT(*) FROM mytable WHERE WidgetID = "1001") = 0 Display "1001\n"

но я не уверен, как это сделать. (Я не очень много использую SQL!)

Уточнение: Я не хочу импортировать данные в это время! Это будет сложной задачей, потому что данные должны быть преобразованы и введены в дюжину различных таблиц различными способами. Прямо сейчас я просто хочу проверить, не были ли дубликаты (я полагаю, что это будут почти полностью ошибки, хотя некоторые, возможно, будут действительно новыми записями).

Ответы [ 2 ]

1 голос
/ 23 сентября 2010
  1. Экспорт Excel в CSV
  2. Убедитесь, что в столбце WidgetID 1005 * создан УНИКАЛЬНЫЙ индекс
  3. Используйте LOAD DATA INFILE с параметром ЗАМЕНА или ИГНОР (в зависимости от того, хотите ли вы заменить дубликаты новыми значениями или оставить предыдущие значения)
0 голосов
/ 23 сентября 2010

Вы можете запрашивать MySQL и Excel одновременно, это INSERT, но любой запрос будет работать:

Excel VBA: запись в базу данных mysql

Вот еще один пример с SQL Server:

ВСТАВИТЬ данные из Excel в базу данных SQL

Вы можете получить строки подключения OLE DB и ODBC из: http://www.carlprothman.net/Default.aspx?tabid=81

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