Пожалуйста, проверьте кодировку из вашего .html файла. Вы можете найти это через Notepad ++ в разделе «Кодирование»
. то, Как получить N, заканчивается на ГРУППУ , можно использовать ОБЪЕДИНЕНИЕ вместо ГРУППЫ и установить ПРЕДЕЛ в каждом операторе SELECT.
пример для массива значений для соответствия против:
(
SELECT * FROM tablename
WHERE column = '".$myValueArray[$n]."'
ORDER BY column DESC
LIMIT 4
)
UNION
(
SELECT * FROM tablename
WHERE column = '".$myValueArray[$n+1]."'
ORDER BY column DESC
LIMIT 4
)
UNION
(
SELECT * FROM tablename
WHERE column = '".$myValueArray[$n+2]."'
ORDER BY column DESC
LIMIT 4
);
Это немного интенсивно / дорогой для большего набора. Но поскольку меньшие наборы могут быть хорошим решением.
Нет, вы не можете ограничивать произвольные подзапросы (вы можете сделать это в ограниченной степени в более новых mysqls, но не для 5 результатов на группу).
Это запрос максимального типа GroupWise, который не является тривиальным для выполнения в SQL. Существуют различные способы для решения, которые могут быть более эффективными для некоторых случаев, но для Top-n в целом вы захотите посмотреть Ответ Билла на аналогичный предыдущий вопрос.
Как и в случае с большинством решений этой проблемы, он может вернуть более пяти строк, если есть несколько строк с тем же значением
значение
, поэтому вам все равно понадобится количество постобработки, чтобы проверить, Отказ