Обычный подход для нечеткого сопоставления строк - это такие вещи, как вычисление расстояния Левенштейна или его реализация в виде n-грамматического поискового индекса.Но для подходящих пользовательских агентов это излишне.
Скорее уменьшите искомую строку до определенных важных критериев, затем сделайте что-то вроде
SELECT * FROM agents WHERE agent LIKE "Mozilla/5.0 (Linux; U; Android%) AppleWebKit/5% Version/4.0 Mobile Safari/5%"
Итак, вы удалите слишком подробные деталии замените их на% в вашем утверждении LIKE.Однако вам следует пересмотреть архитектуру - я бы сохранил только важные части и оставил без изменений точный номер сборки и т. Д. Также рассмотрите возможность использования внешней библиотеки, которая уже содержит пользовательские агенты и выполняет сопоставление для вас, не нужно заново изобретать колесо.
РЕДАКТИРОВАТЬ: так же, как VolkerK указал выше, «внешняя библиотека» должна быть PHPs getbrowser .Только что добавил для полноты ответа; -)