【发布时间】:2013-09-04 08:04:43
【问题描述】:
我有一些歌曲名称和它们预先计算的 soundex 存储在一个 mysql 表中。我想将用户输入的 soundex 与预先计算的 soundex 进行比较。并按照用户输入和歌曲名称的差值升序获取结果。
我尝试了以下查询(在 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),但这只是返回完全匹配的声音。
【问题讨论】:
-
你能准确描述一下“差异”是什么意思吗?
-
@Aioros 好像区别是在MSSQL服务器中实现的。
-
根据文档, DIFFERENCE 返回两个字符串的 SOUNDEX 中相同的字符数。在 MySQL 查询中实现这将是相当复杂的。您最好编写一个存储过程或用您的编程语言管理它。