У меня есть имена песен и их предварительно вычисленный soundex, хранящийся в таблице mysql. Я хочу сравнить soundex пользовательского ввода с предварительно рассчитанными soundex'ами. И получите результаты в порядке возрастания разницы между именем пользователя и именем песни.Mysql - Рассчитайте разницу в звуковых сигналах между двумя строками
Я попытался следующий запрос (в Java):
String query="SELECT * FROM song ORDER BY STRCMP(pre_calculated_soundex,SOUNDEX("+user_input+")) ASC ";
Но STRCMP возвращает только 1,0 или -1. Так что упорядочение неверно.
Также попробовал WHERE pre_calculated_soundex=SOUNDEX(user_input)
, но это просто возвращает точно соответствующий soundex.
Можете ли вы описать, что вы имеете в виду с «разницей», точно ? – Aioros
@Aioros Как различие реализовано на сервере MSSQL. –
В соответствии с документами DIFFERENCE возвращает количество символов, которые одинаковы в SOUNDEXes двух строк. Это будет довольно сложно реализовать в запросе MySQL. Возможно, вам лучше написать хранимую процедуру или управлять ею на вашем языке программирования. – Aioros