2015-03-04 2 views
-2

Мне нужно что-то, что будет искать некоторые записи, а затем решить, следует ли удалять или обновлять в зависимости от результата первого запроса. Так, например:Как сделать условное обновление/удаление в MySQL?

IF (SELECT COUNT(*) FROM Items WHERE itemId = 101) = 0 THEN 
    DELETE FROM itemPrice WHERE itemId = 101; 
ELSE 
    UPDATE itemPrice SET price = 0 WHERE itemId = 101; 
END 

Я не уверен, как это сделать, возможно ли это только в MySQL?

+0

@lbrahim Я обновил его, чтобы быть вопрос сейчас, хотя я чувствую, что я был совершенно ясно с просьбой о помощи с синтаксисом моего заявления. – user11406

+0

Кажется, что вы пытаетесь вручную ограничить значения 'itemId' в таблице' itemPrice' на основе отношения с столбцом 'itemId' в таблице' Items'. Это то, что MySQL может обрабатывать для вас через [ограничения внешнего ключа] (http://dev.mysql.com/doc/en/create-table-foreign-keys.html). Возможно, это все, что тебе нужно? – eggyal

ответ

0

Вы можете использовать 2 разные команды SQL:
DELETE FROM itemPrice WHERE itemId not in (select itemid FROM Items)); UPDATE itemPrice SET price = 0 WHERE itemId in (select itemid FROM Items));

Смежные вопросы