Я пытаюсь создать инструкцию SQL, которая проверяет таблицу, чтобы увидеть, существует ли запись, если нет, она добавляет запись. Если она существует, она изменяет значение поля в TRUE.MySQL If (SELECT count (*) возвращает ошибку # 1064
If (SELECT COUNT(*) FROM 'my_preferences' JOIN users ON 'user_id' = 'mp_user_id') =1
UPDATE `mp_start_page`= TRUE where 'user_id' = 'mp_user_id'
Else
INSERT INTO `my_preferences` (`mp_user_id`, `mp_start_page`) VALUES ('user_id', 'TRUE')
Я также посмотрел в попытке достичь этого с помощью INSERT ... ON дубликата ключа функции UPDATE, но я не могу получить, чтобы работать либо ..
Спасибо вам помочь
отредактирован ADD: Я сравнения двух отдельных таблиц (my_preferences & пользователей). Мне нужно, чтобы проверить таблицу my_preferences, чтобы увидеть, если users.user_id существует в mp_user_id поле, если да, то он обновляет mp_state_page в TRUE, если нет, то он добавляет запись делает mp_user_id = user_id и mp_start_page в ИСТИНА
Я предполагаю, что использование одиночных кавычек вместо обратных тиков в вашем запросе - это просто опечатка, верно? –
Этот вид не является допустимым запросом MySQL. Единственное место, где вы можете иметь такую логику, - это хранимая процедура, функция или триггер. Запросы начинаются с SELECT, UPDATE, INSERT и т. Д. Вы можете сделать условную вставку с помощью 'INSERT INTO ... SELECT' или условного UPDATE с' INSERT ... ON DUPLICATE KEY UPDATE', но нет единого запроса для вашего логика. –
ОК, сейчас я пытаюсь это: INSERT INTO my_preferences (mp_user_id, mp_start_page) VALUES ((SELECT 'user_id' от пользователей), 'TRUE') дублированием KEY UPDATE mp_start_page = 'TRUE' возвращает эту ошибку: # 1242 - Подзапрос возвращает более 1 строки – EMUELLER