我正在尝试创建一个mysql查询,它将从数据库中选择soundex等同的姓氏。在php中,我通过以下方式生成了soundex代码:
$sxname = soundex($name);
然后我构建了mysql查询
$query = "SELECT *
FROM database
WHERE soundex(surname)
LIKE '$sxname'"
;这适用于很多姓氏,但不适用于其他姓氏--比如CAWS。CAWS的php soundex值是C200,而MySQL值是C000。
有没有解决这些差异的办法?
我确实尝试使用了一个函数,所以这两个函数都是用php创建的:
function mysql_soundex($name)
{
$snname = soundex($name);
return $snname;
}并在以下位置调用它:
$query = "SELECT *
FROM database
WHERE mysql_soundex('surname')
LIKE '$sxname'"
;但这也不管用。
发布于 2014-04-04 08:47:53
让MySQL只执行soundex转换:
$query =
"SELECT * FROM database
WHERE SOUNDEX(surname) = SOUNDEX('$name')";..。或者严格等同的语法糖:
$query =
"SELECT * FROM database
WHERE surname SOUNDS LIKE '$name'";https://stackoverflow.com/questions/22849373
复制相似问题