ну если брать конкретно этот пример, для него достаточно разбить строку preg_split() по границе букв и цифр (я не спец в регулярках, на вскидку не скажу), и искать %DP%450%, а если таблицы MyISAM, то лучше юзать полнотекстовый поиск.
goacher
ну как вариант можно еще завести дополнительное поле, в котором хранить только буквы и цифры из названия товара, удаляя все спец.символы и пробелы.
То есть для указанных трех товаров это поле будет иметь значение:
DP450
LgDP450
DP450
И прекрасно найдется по простому условию %DP450%. Поиск вообще субъективная фигня, тут думать надо
%D%P%4%5%0% я думаю неправильно для любого случая. Во-первых ресурсоемко, во-вторых слишком велика вероятность ложного срабатывания.