The WEEK()
function takes an optional second parameter to specify the start of the week:
This function returns the week number for date. The two-argument form of WEEK()
enables you to specify whether the week starts on Sunday or Monday and whether the return value should be in the range from 0 to 53 or from 1 to 53.
However, it can only be set to Sunday or Monday.
UPDATE: Further to the comments below, you may want to consider adding a new column to your table to act as a grouping field, based on WEEK(DATE_ADD(date INTERVAL x DAY))
, as suggested in the comments. You may want to create triggers to automatically generate this values whenever the date
field is updated, and when new rows are inserted. You would then be able to create a usable index on this new field as required.