На сервере есть две абсолютно одинаковые по структуре таблицы `users` в двух базах данных `db_1` и `db_2`
В первой таблице отсутствует половина записей
Как проще всего скопировать данные из второй таблицы (которых нет в первой) и записать их в первую?
Hat-Trik,
INSERT INTO users_1 (col) SELECT col from users_2
Только сначала надо принимающую колонку очистить.
kantry, имеющиеся записи трогать не надо, а если записи с таким ID нет, то записывать
я так понял данный вариант подходит
INSERT IGNORE INTO `db_1`.`users`
SELECT *
FROM `db_2`.`users`
Hat-Trik, Тогда проще update сделать, обновление не затронет одинаковые значения.
kantry, но update остановит выволнение запроса если обнаружет дублирование
Serghei, Невнимательно я как всегда вопрос прочитал
INSERT INTO tbl1 (id, col1) SELECT id, col2 FROM tbl2 WHERE id not in(select id from tbl1)
Можно ещё if not exists использовать
Помогите создать правильный запрос MySQL, а то у меня никак не получается, ошибки выдаёт.
Есть таблица
mov_posts, в ней есть поля
xfields и
approve
Вот мне надо найти все строки где в xfields есть такой текст /uploads/poster_none.jpg и присвоить полю approve значение '0'
Пробовал так
UPDATE approve FROM `mov_post` SET approve = '0' WHERE xfields = '%/uploads/poster_none.jpg%'
и так
UPDATE approve FROM mov_post SET approve = '0' WHERE xfields = '%/uploads/poster_none.jpg%'
Ну ни как...
Sitego, WHERE field LIKE ‘%name%’ юзай.
Ток не копируй кавычки из этого поста ) с телефона писал, они какие-то не такие ) напиши лучше сам )
Макс, спасибо, но я пробовал LIKE и раньше. Это в принципе одно и то же, что знак равно, что LIKE. Или я заблуждаюсь?
В общем, методом тыка нащупал. Я там лишнее писал. Вот так запрос сработал.
UPDATE mov_post SET approve = '0' WHERE xfields = '%/uploads/poster_none.jpg%'
и так тоже работает
UPDATE mov_post SET approve = '0' WHERE xfields LIKE '%/uploads/poster_none.jpg%'