Как сделать проверку колонок из разных таблиц?
Я новичок в mySQL, и у меня стоит задача, мне нужно что бы проводилась проверка колонки user_login с таблицы bloodcraft.wp_users, и колонки username с таблицы authme.authme2, и если эти колонки не равны (тоесть имеют разные значения) то выполнять следующий код:
INSERT INTO bloodcraft.wp_users (`user_login`, `user_pass`, `user_nicename`, `display_name`, `user_url`) SELECT `username`, `password`, `realname`, `realname`, 'https://тут мой сайт/' FROM authme.authme2;
На данном этапе у меня получился такой запрос:
SELECT `user_login`, `username`, IF(`user_login` != `username`, "YES", "NO") FROM authme.authme2, bloodcraft.wp_users;
Но куда мне вставить мой код с Insert? Вот результат работы Select, нужно что бы вместо YES выводился код (INSERT...)
Если поставить вместо YES то выдаст ошибку:
#1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса около 'INTO bloodcraft.wp_users (user_login
, user_pass
, user_nicename
, `displa...' на строке 1
Как мне сделать, что бы при срабатывании условия срабатывал код?
Ответы (1 шт):
Как я понимаю, в MySQL нет оператора MERGE как в T-SQL, который очень пригодился бы)
Думаю, здесь может помочь инструкция ON DUPLICATE KEY UPDATE, синтаксис будет примерно такой
INSERT INTO bloodcraft.wp_users
(user_login
, user_pass
, user_nicename
, display_name
, user_url
)
SELECT username
, password
, realname
, realname
, 'https://тут мой сайт/' FROM authme.authme2;
ON DUPLICATE KEY UPDATE
'user_login' = VALUES('username');