You may try a query like this one:
select product_option_id, product_option_value_id, min(quantity)
from product_option_value
where (product_option_id = 230 and product_option_value_id = 43)
or (product_option_id = 228 and product_option_value_id = 49)
group by product_option_id, product_option_value_id;
In practice:
> create table product_option_value(product_option_id int, product_option_value_id int, quantity int);
> insert into product_option_value values
> (230, 43, 2),
> (230, 32, 1),
> (228, 49, 1),
> (228, 50, 0),
> (229, 50, 1),
> (229, 49, 1),
> (230, 43, 8),
> (230, 32, 9),
> (228, 49, 11),
> (228, 50, 10),
> (229, 50, 5),
> (229, 49, 4);
> select product_option_id, product_option_value_id, min(quantity)
> from product_option_value
> where (product_option_id = 230 and product_option_value_id = 43)
> or (product_option_id = 228 and product_option_value_id = 49)
> group by product_option_id, product_option_value_id;
+-------------------+-------------------------+---------------+
| product_option_id | product_option_value_id | min(quantity) |
+-------------------+-------------------------+---------------+
| 228 | 49 | 1 |
| 230 | 43 | 2 |
+-------------------+-------------------------+---------------+
You should also quote the query parameters properly. Using constructs like ...product_option_id=".$key."...
(excerpt from your example from the comments) is error-prone, as $key
may contain anything, like Little Boby Tables.
Edit: To get just a single minimum for all such groups, you just drop the group by and the grouping columns, like this:
> select min(quantity)
> from product_option_value
> where (product_option_id = 230 and product_option_value_id = 43)
> or (product_option_id = 228 and product_option_value_id = 49);
+---------------+
| min(quantity) |
+---------------+
| 1 |
+---------------+