Как вывести все минимальные значения из БД в php?
Всем привет. В моей таблице есть колонка с ценами на товар. Есть 5 товаров по цене:
- 20
- 30
- 20
- 90
- 150
Мне нужно вывести все товары с минимальной ценой, в данном случае "20". То есть товары 1 и 3. Я пробую делать так:
$tov = mysqli_query($mysqli, "SELECT MIN(`price`) as min FROM `dress` WHERE `color` like '%blue%' and `size` = '52'");
Далее пробую всё это зациклить:
while ($prices = mysqli_fetch_assoc($tov))
{
echo prices['min'];
}
Но мне выводится только цена первого товара. То есть "20" должно выводиться 2 раза, а выводится только 1. Как сделать, чтобы вывелись цены сразу всех товаров с минимальной стоимостью?
p.s.
Понимаю, что вопрос для новичков. И понимаю, что в данном контексте непонятно зачем мне это нужно. Но если, к примеру, есть несколько товаров одной категории и одного размера, но разного цвета, тогда нужна возможность делать именно такой вывод
Ответы (2 шт):
Сделал так, но сомневаюсь, что это правильно... Есть ли другие решения?
$min_price = mysqli_fetch_assoc($tov)['min']
$tov = mysqli_query($mysqli, "SELECT * FROM `dress` WHERE `color` like '%blue%' and `size` = '52' and `price` = $min_price");
SELECT *
FROM
`dress`
WHERE
price = (SELECT MIN(`price`) FROM `dress` WHERE `color` LIKE '%blue%' AND `size` = '52')
AND
`color` LIKE '%blue%'
AND
`size` = '52'
Возможно, условия на color и size можно не повторять.