Вие сте на прав път по отношение на това как работи MySQL, като имате различни режими за функции, свързани със седмицата, които могат да дадат различни резултати. http://dev.mysql .com/doc/refman/5.5/en/date-and-time-functions.html#function_week
Според мен режимът на MySQL, който е еквивалентен на логиката за дата на PHP, е режим 3, който е стандартът за дата в седмицата на ISO http://en.wikipedia.org/wiki/ISO_week_date
Това има седмици, започващи от понеделник, и седмици с номер 1-53.
Така че ще трябва да използвате WEEK(date_field, 3)
за да получите съвместими с PHP стойности.
Като алтернативен подход, едно нещо, което намерих за удобно в случаите, когато се нуждаете от способността да правите гъвкави заявки за различни периоди от време или агрегати (Q1- Q4, H1 - H2 и т.н.), или когато може да се наложи да използвате различни седмици от PHP поддържа е да се използва помощна таблица за дати в MySQL (подобно на това, което може да се използва като таблица с измерения на дати в склад за данни, ако сте запознати с това). Може да ви даде удобна таблица, срещу която да се присъедините, за да търсите периоди от време. Нещо подобно трябва да работи:
http://databobjr.blogspot.com /2012/06/create-date-dimension-table-in-mysql.html