Использование значений, разделенных запятыми, в одном поле в базе данных свидетельствует о плохом дизайне.Вы должны нормализовать вещи и иметь отдельную таблицу "item_sizes".В нынешнем виде вам нужно ОЧЕНЬ уродливое предложение where для обработки таких несовпадений подстрок:
$s = (intval)$_GET['size'];
... WHERE (active_sizes = $s) // the only value in the field
OR (active_sizes LIKE '$s%,') // at the beginning of the field
OR (active_sizes LIKE '%,$s,%') // in the middle of the field
OR (active_sizes LIKE '%,$s') // at the end of the field
Или, если вы правильно нормализовали вещи и имели эти отдельные значения в своей дочерней таблице:
WHERE (active_sizes_child.size = $s)
Я знаю, какой из них я бы выбрал ...
Вы не указываете, какую БД вы используете, но если вы в MySQL, вы можете временно выполнитьто же самое с
WHERE find_in_set($s, active_sizes)
ценой потери переносимости.Соответствующие документы здесь: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set