Я хочу, чтобы иметь возможность выбирать кучу строк из таблицы электронной почты и группировать их с отправителя. Мой запрос выглядит следующим образом:MySQL «Group By» и «Order By»
SELECT
`timestamp`, `fromEmail`, `subject`
FROM `incomingEmails`
GROUP BY LOWER(`fromEmail`)
ORDER BY `timestamp` DESC
Запрос почти работает, как я хочу - он выбирает записи, сгруппированных по электронной почте. Проблема в том, что тема и временная метка не соответствуют самой последней записи для определенного адреса электронной почты.
Например, он может вернуться:
fromEmail: [email protected], subject: hello
fromEmail: [email protected], subject: welcome
При записи в базе данных являются:
fromEmail: [email protected], subject: hello
fromEmail: [email protected], subject: programming question
fromEmail: [email protected], subject: welcome
Если «программирование вопрос» субъект является самым последним, как я могу получить MySQL выбрать эту запись при группировке электронных писем?
Отличная идея, я бы никогда не подумал об этом. – philwilks
Я пришел с таким же решением несколько лет назад, и это отличное решение. Престижность к b7kich. Здесь есть два вопроса ...GROUP BY нечувствительна к регистру, поэтому LOWER() не требуется, а во-вторых, $ userID представляется переменной непосредственно из PHP, ваш код может быть уязвим для sql-инъекций, если $ userID предоставляется пользователем и не принуждается быть целым числом. – velcrow
Хорошая идея. Большое спасибо –