2012-02-02 1 views
0

У меня есть следующая таблица в качестве примера.Как выбрать с помощью LIMIT, если требуется несколько строк с одинаковым значением столбца?

id uid car 
1 3 BMW 
2 3 AUDI 
3 3 JEEP 
4 5 MERC 
5 6 BMW 
6 6 FIAT 

Теперь я хотел бы получить все автомобили, но только для 2 пользователей, но не знаю, сколько у них автомобилей. Когда у всех у всех был бы только один автомобиль, я мог бы просто сделать LIMIT 3, но как я могу это сделать, чтобы получить все автомобили, но только для 2 пользователей?

+0

может вам подробнее о том, что вы пытаетесь выполнить? –

+0

Может быть, group_concat может помочь? – ajreal

+0

@KamranAli Что мне нужно, так это получить список пользователей (с jQuery), который сначала показывает только один автомобиль для каждого пользователя. Если вы нажмете на пользователя, вы увидите все его машины. Я могу сделать это с несколькими запросами, но скорее всего это все в одном. (PS, реальное приложение немного сложно объяснить, поэтому я использую автомобили в качестве примера) – Glooh

ответ

1

EDIT

Если 2 пользователи неизвестны вы можете использовать MySQL GROUP_CONCAT

$query = mysql_query("SELECT uid, GROUP_CONCAT(car) as cars FROM tablename GROUP BY uid ORDER BY uid ASC LIMIT 0,2"); 
while ($get = mysql_fetch_array($query)) { 
    $userid = $get['uid']; 
    $result = explode(",", $get['cars']); 
    echo '<h2>User #' . $userid . ' owns the following cars:</h2>' . "\n"; 
    echo '<ul>' . "\n"; 
    foreach ($result as $car) { 
    echo ' <li>' . $car . '</li>' . "\n"; 
    } 
    echo '</ul>' . "\n"; 
} 

Примечание: Не забудьте изменить имя таблицы в запросе SELECT,

+0

Спасибо, но это не решение, потому что я не знаю пользователей на forhand. – Glooh

+0

@Glooh - Хорошо! Просто обновил свой ответ. Должно быть именно то, что вы ищете :) – Tom

+0

Отлично! Именно то, что мне нужно! Я проверил его и могу сделать некоторые дополнительные материалы на интерфейсе, но по крайней мере у меня есть один запрос сейчас. Благодаря!! – Glooh

Смежные вопросы