LIKE в MySQL запросе!

SLPT

Новичок
LIKE в MySQL запросе!

На сайте есть регистрация пользовалетей!
При вводе нового имени идет проверка на его уникальность!!

Помогите написать такой запрос к базе с использованием LIKE что бы при скрипт с положительным результатом говорил примерно так, что ник примерно на 50% поход на уде существующий .. или если очень похож - на 70% ..

Думаю облегчит задачу то, что нельзя в имени пользователя использовать одновременно буквы разных обоих алфавитов (рус. и англ.), а только по отдельности!!

Очень надеюсь на Вашу помощь!
Спасибо!
 

zerkms

TDD infected
Команда форума
слишком много возлагаешь на mysql

проверку на алфавиты делай в скрипте

а про "похожесть" - сомневаюсь что существует чтото вразумительное
 

SLPT

Новичок
ну тогда помогите с написанием такого скрипка ...
как он работать должен?!
я так понимаю последовательно сравнивать каждый символ с каджым символов пользователей уже имеющихся в базе?!
правельно?!?
а как такое реализовать?
 

zerkms

TDD infected
Команда форума
strspn() + strlen() или preg_match() - вот и весь алгоритм
 

white phoenix

Новичок
В скрипте рег. выражением проверяй наличие одновременно и русских и английских букв, если есть, то выводи предупреждение. В PHP есть функция [m]similar_text[/m] для вычесление степени похожести, а в mySQL нет. Есть только [m]soundex[/m] (mySQL doc.), но она слишком грубая для этого мне кажется. Если очень нужно, можешь создать функцию сам, но думаю в этом нет необходимости.
 

Raul

Новичок
Re: LIKE в MySQL запросе!

Автор оригинала: SLPT
На сайте есть регистрация пользовалетей!
При вводе нового имени идет проверка на его уникальность!!

Помогите написать такой запрос к базе с использованием LIKE что бы при скрипт с положительным результатом говорил примерно так, что ник примерно на 50% поход на уде существующий .. или если очень похож - на 70% ..
Спасибо!
Не уверен, что это то, что нужно, но может покопать soundex()
 

bkonst

.. хочется странного?...
Определиться, что значит "похожесть". Если по написанию, то привести строки к "нормализованному" виду, скажем, верхний регистр, группы похожих символов заменены на единственный символ из группы (например, O и 0 заменить на O) и померять расстояние Левенштейна с помощью levenshtein
 
Сверху