Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybierz dzień tygodnia od daty

Użyj DAYOFWEEK w zapytaniu coś takiego:

SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;

Znajdziesz tu wszystkie informacje na soboty w maju.

Aby uzyskać najszybsze odczyty przechowuj zdenormalizowane pole, które jest dniem tygodnia (i cokolwiek innego, czego potrzebujesz). W ten sposób możesz indeksować kolumny i unikać pełnego skanowania tabel.

Po prostu wypróbuj powyższe, aby sprawdzić, czy odpowiada Twoim potrzebom, a jeśli nie, dodaj kilka dodatkowych kolumn i przechowuj dane podczas zapisu. Po prostu uważaj na anomalie aktualizacji (upewnij się, że aktualizujesz kolumnę day_of_week, jeśli zmienisz event_date).

Zwróć uwagę, że zdenormalizowane pola wydłużą czas wykonywania zapisów, zwiększą liczbę obliczeń przy zapisie i zajmą więcej miejsca. Upewnij się, że naprawdę potrzebujesz korzyści i możesz zmierzyć, że ci to pomaga.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego ta pętla nie wyświetla zaktualizowanej liczby obiektów co pięć sekund?

  2. Test poprawności połączenia MySQL w źródle danych:SELECT 1 czy coś lepszego?

  3. Wybierz format MySQL, okrągła kolumna

  4. Odkażanie i weryfikacja formularza php

  5. Uzyskaj zaktualizowane wpisy tabeli MySQL w Pythonie bez zamykania połączenia