Вместо этого я бы предложил сделать это с двумя таблицами:
products:
- name
- id
code_ranges:
- product_id
- range_start
- range_end
Тогда вы можете получить то, что хотите (для некоторых $input_id
), используя соединение:
SELECT product.id, product.name
FROM products
JOIN code_ranges ON products.id = code_ranges.product_id
WHERE code_ranges.range_start <= $input_id
AND code_ranges.range_end >= $input_id
Вы можете иметь несколько строк в таблице code_ranges
для каждого продукта, чтобы представить несколько разных диапазонов (например, 2-4,7-10
будет иметь две строки, одна с range_start=2
и range_end=4
, а другая для диапазона 7-10).
Код продукта, который не является диапазоном, будет просто рассматриваться как диапазон, в котором начало и конец совпадают (например, 7
будет range_start=7
и range_end=7
).