Да, строка будет заблокирована до тех пор, пока команда обновления не будет завершена. Выбор будет выполнен только после успешного выполнения команды обновления.
Надеюсь, вы, возможно, слышали об свойствах ACID.
вот они:
Атомарность
Все изменения данных выполняются так, как будто они являются одной операцией. То есть все изменения выполняются или ни один из них не выполняется.
Например, в приложении, которое переводит средства из одной учетной записи в другую, свойство atomicity гарантирует, что если дебет успешно выполнен с одной учетной записи, соответствующий кредит будет передан другой учетной записи.
Консистенция
данных находится в согласованном состоянии, когда транзакция начинается и когда она заканчивается. Например, в приложении, которое переводит средства с одной учетной записи на другую, свойство согласованности гарантирует, что общая стоимость средств на обоих счетах одинакова в начале и конце каждой транзакции.
Изоляция
Промежуточное состояние транзакции является невидимым для других операций. В результате транзакции, которые запускаются параллельно, кажутся сериализованными.
Например, в приложении, которое переводит средства с одной учетной записи на другую, свойство изоляции гарантирует, что другая транзакция увидит переведенные средства на одной учетной записи или другой, но не в том и в другом, ни в другом.
Прочность
После того, как транзакция завершается успешно, изменения в данные сохраняются и не отменены, даже в случае отказа системы.
Например, в приложении, которое переводит средства с одной учетной записи на другую, свойство долговечности гарантирует, что изменения, внесенные в каждую учетную запись, не будут отменены.
Все эти свойства применяются в случае транзакции sql.
Я не уверен на 100% о блокировке строк, потому что я не эксперт по SQL. Но если вы запустите PHP-скрипт с запросом UPDATE, за которым следует запрос SELECT, сценарий не будет продолжаться до тех пор, пока не будет обработан запрос UPDATE (поэтому SELECT всегда будет получать актуальную информацию). – Sam