Есть ли какой-нибудь способ сократить этот SQL-запрос

#mysql #sql #database #phpmyadmin #xampp

Вопрос:

 SELECT * FROM userfeedback WHERE
    DATE LIKE '2020-07%' OR
    DATE LIKE '2020-08%' OR
    DATE LIKE '2020-09%' OR
    DATE LIKE '2020-10%' OR
    DATE LIKE '2020-11%' OR
    DATE LIKE '2020-12%' OR
    DATE LIKE '2021-01%' OR
    DATE LIKE '2021-02%' OR
    DATE LIKE '2021-03%' OR
    DATE LIKE '2021-04%' OR
    DATE LIKE '2021-05%' OR
    DATE LIKE '2021-06%';
 

Примечание : Здесь ДАТА — это имя столбца типа Отметка времени.

Комментарии:

1. Хранится DATE ли столбец в виде строки или в виде правильной даты? Вы можете использовать запрос диапазона с BETWEEN использованием столбца реальной даты.

Ответ №1:

Если я правильно понял, вы хотите получить все данные с июля 2020 года по июнь 2021 года. Поскольку вы указали, что типом данных ДАТЫ является карта времени, вы можете сделать следующее:

 SELECT * 
FROM userfeedback 
WHERE 
  DATE >= '2020-07-01' AND
  DATE < '2021-07-01' 
 

PS: Я бы избегал использования МЕЖДУ, так как это может дать нежелательные результаты при использовании временных меток.

Ответ №2:

вот один из способов :

 SELECT * FROM userfeedback 
WHERE DATE between '2020-07-01' and '2021-06-30'
 

примечание : дата-это ключевое слово , лучше не использовать его в качестве имен объектов (имя столбца и т. Д.)