Есть ли разница между обычными Mysql и MariaDB с Curdate, который портит мой запрос? - PullRequest
0 голосов
/ 28 января 2019

В MYSQL эта команда раньше находила все даты.< CURDATE() но он перестал работать.

В течение нескольких лет я использовал оператор выбора, чтобы найти незавершенные бронирования отелей в прошлом, чтобы я мог их удалить.Затем, около 6 месяцев назад, мой php скрипт начал удалять важные заказы в будущем.Должно быть, есть небольшая разница в том, как MYSQL обрабатывает мой запрос.

В моей базе данных у бронирования есть день прибытия, продолжительность скажем - продолжительность.(поэтому дата отъезда - это дата прибытия плюс продолжительность)

Предполагается, что при бронировании даты отъезда были более 3 дней назад.Но в будущем он тоже найдет заказы.

DELETE FROM booking WHERE status_id = 1 AND date_add(booking.arrivalday, INTERVAL duration DAY)+3 < CURDATE() 

Этот код хорошо работал до нескольких месяцев назад.MYSQL внес некоторые изменения, которые перестали работать.

Я только что вошел в базу данных, чтобы увидеть, какую версию mysql я использую.

Я с удивлением узнал, что это

MySQL version: 10.1.37-MariaDB-cll-lve through PHP extension MySQLi

Я использую хостинг А1.Я думал, что использую обычные MYSQL, а не maria MYSQL.

. Теперь я начинаю подозревать, что проблема с моим запросом вызвана разницей между обычными MYSQL и maria MYSQL.

.

Может кто-нибудь пролить свет на это ????

1 Ответ

0 голосов
/ 28 января 2019

Я обнаружил следующее решение:

DELETE FROM booking WHERE status_id = 1 AND date_add(booking.arrivalday, INTERVAL duration DAY) < (CURDATE() -3)

Небольшое изменение синтаксиса заставляет запрос работать.Что заставило его перестать работать, остается загадкой.Единственное, о чем я могу думать, это перейти с обычного PHP на Maria PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...