Вот что я хочу сделать с моей базой данных MySQL .
Я хотел бы сделать:
SELECT *
FROM itemsOrdered
WHERE purchaseOrder_ID = '@purchaseOrdered_ID'
AND status = 'PENDING'
Если бы это не вернуло ни одной строки, что возможно через if(dr.HasRows == false)
, я бы сейчас создал UPDATE
в purchaseOrder
базе данных:
UPDATE purchaseOrder
SET purchaseOrder_status = 'COMPLETED'
WHERE purchaseOrder_ID = '@purchaseOrder_ID'
Как бы я мог сделать этот процесс немного короче?
itemsOrdered_ID
и повторяющиесяpurchaseOrder_ID
значенияpurchaseorder
базы данных с другой стороны , имеет уникальный идентификаторpurchaseOrder_ID
Ответы:
По вашему конкретному запросу вы можете сделать:
Тем не менее, я могу догадаться, что вы цикл на более высоком уровне. Чтобы установить все такие значения, попробуйте это:
источник
Вы можете использовать
UPDATE
синтаксис нескольких таблиц для выполненияANTI-JOIN
междуpurchaseOrder
иitemsOrdered
:источник
Поскольку MySQL не поддерживает
if exists(*Your condition*) (*Write your query*)
, вы можете достичь условия if, написав так:источник
Вы также можете использовать следующий запрос, чтобы проверить, существует ли запись, а затем обновить ее:
источник
источник
SQL
источник
после SQL Server 2008 обеспечить
Merge
операцию вставки, обновления и удаления на основе одного оператора сопоставления, что также позволяет присоединиться. Пример ниже может помочь вам.Как это вы можете вставлять, обновлять и удалять в одном утверждении.
и для получения дополнительной информации вы можете обратиться к официальным документам на https://technet.microsoft.com/en-us/library/bb522522(v=sql.105).aspx
источник
Если таблица содержит миллионы записей, следующий запрос будет работать быстро.
источник
Вы можете объявить переменную, содержащую количество возвращенных результатов в запросе выбора. Затем вы можете запустить оператор обновления, если эта переменная больше 0
источник