mySQL исчезающие записи после вставки - PullRequest
0 голосов
/ 17 февраля 2020

В последнее время со мной случается странная вещь. Я работаю с базой данных MySQL и использую phpMyAdmin для управления ею. Недавно я хотел сделать копию таблицы, используя select в качестве вставки, так как заметил, что большинство записей в таблице были дубликатами, и хотел создать новую чистую таблицу без повторяющихся записей.

INSERT INTO `newTable` (SELECT * FROM `oldTable` GROUP BY `uniqueVal`)

и получил сообщение, что 63959 были успешно скопированы (обратите внимание, выберите выше, сокращает 146383 записей до 63959). Теперь странная часть, когда я запускаю запрос:

SELECT * FROM `newTable`, он возвращает только 56207 строк.

, но запрос, подобный этому:

SELECT COUNT(*) FROM `newTable` возвращает правильное число (63959 ), а также

SELECT * FROM `newTable` GROUP BY `id` возвращает 63959 строк.

Теперь я новичок в управлении базами данных, но я почти уверен, что этого не должно произойти, если я неправильно вставил данные, У кого-нибудь была похожая проблема и как вы ее решили? Пожалуйста, помогите, поскольку я не знаю, с чего начать, чтобы решить такую ​​проблему.

1 Ответ

0 голосов
/ 17 февраля 2020

Движок MySQL случайным образом выбирает значения, и, вероятно, вы этого не хотите.

Подзапрос:

SELECT * FROM oldTable GROUP BY `uniqueVal`

, хотя и принят MySQL, недопустим SQL запрос и вызывает проблемы.

Все столбцы, отсутствующие в предложении GROUP BY, должны быть агрегированы с использованием SUM(), MIN(), MAX(), et c.

Перефразируйте ваш запрос и попробуйте снова.

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