MySQL и PHP - выберите 6 строк, каждая с отдельным предложением WHERE - PullRequest
1 голос
/ 19 июня 2011

Я очень хорошо разбираюсь в MySQL, но этого никогда не делал. Я хочу сделать SQL-код для выбора 6 строк, каждая со своим предложением WHERE.

То, что я пытаюсь сделать, это получить 6 строк, и каждый из них будет самым последним "видео", которое было опубликовано. Есть 6 категорий, поэтому у меня есть 6 строк. Я хочу, чтобы он вытягивал самый последний по этому номеру 'id'.

Я бы сделал это с 6 различными запросами SQL, но я предполагаю, что это будет медленнее (разве это единственный способ сделать это?)

Layout

Из этого небольшого фрагмента я хотел бы закончить так:

2 -> 21

6 -> 16

8 -> 14 (выбирает 14, так как оно самое большое.)


Окончательный рабочий код

$sql="SELECT video_category, MAX(video_id) AS video_id FROM videos GROUP BY video_category";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)) {
echo $rows['video_category'] . " --> " . $rows['video_id'] . "<br>";
}

Ответы [ 4 ]

3 голосов
/ 19 июня 2011

что-то вроде

select distinct category, video_id from table_name order by id DESC

Если у вас есть 6 категорий в БД, вы получите 6 строк, все из которых имеют самый высокий идентификатор в своей категории

2 голосов
/ 19 июня 2011

Пожалуйста, поделитесь вашей структурой таблицы. Тем не менее, я думаю, что следующий запрос должен помочь:

SELECT category_id, MAX(movie_id) most_recent_movie_for_category FROM movies GROUP BY category_id
1 голос
/ 19 июня 2011

Спасибо за публикацию структуры таблицы.Это просто GROUP BY с MAX агрегатом по video_id.

SELECT video_category, MAX(video_id) AS video_id FROM videos GROUP BY video_category;
1 голос
/ 19 июня 2011

У вас есть два варианта:

  1. Определить общее предложение WHERE, которое приведет к тому, что вам нужно.
  2. (вероятно, предпочтительный) Сделайте запрос с использованием UNION (SELECT ... FROM ... WHERE ... UNION SELECT ... FROM ... WHERE ... и т. Д.).)

Дайте мне знать, если у вас есть какие-либо вопросы.Я полагаю, что без вашей структуры базы данных вам будет сложно помочь вам больше.

...