Задать вопрос
@aopil

Как исключить выборки одной и строчки sql?

Делаю выборку из БД
SELECT * FROM table WHERE Type =:type AND DateTimeRequest < NOW() - INTERVAL 24 HOUR ORDER BY DateTimeRequest ASC LIMIT 1

Далее делаю обновление времени:
UPDATE table SET DateTimeRequest = NOW() WHERE Id = $id


Если одновременно запускается скрипт 2 раза, то иногда он выбирает одну и туже строчку, тем самым вытаскиваем одинаковый результат, как этого избегать?
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
@entermix
Используйте транзакции
Ответ написан
Комментировать
@feniksdv
Делайте проверку изменяемого поля
Ответ написан
Комментировать
@BorisKorobkov Куратор тега PHP
Web developer
Плохой вариант: использовать lock.
для cron: flock
для mysql: https://dev.mysql.com/doc/refman/8.0/en/lock-table...
для postgresql: https://www.postgresql.org/docs/9.1/functions-admi...

Хороший вариант: полностью переписать с привлечением грамотного разработчика
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы