首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同的soundex值php和mysql

不同的soundex值php和mysql
EN

Stack Overflow用户
提问于 2014-04-04 05:28:20
回答 1查看 1.1K关注 0票数 1

我正在尝试创建一个mysql查询,它将从数据库中选择soundex等同的姓氏。在php中,我通过以下方式生成了soundex代码:

$sxname = soundex($name);

然后我构建了mysql查询

代码语言:javascript
复制
$query = "SELECT * 
FROM database
WHERE soundex(surname)
LIKE '$sxname'"
;

这适用于很多姓氏,但不适用于其他姓氏--比如CAWS。CAWS的php soundex值是C200,而MySQL值是C000。

有没有解决这些差异的办法?

我确实尝试使用了一个函数,所以这两个函数都是用php创建的:

代码语言:javascript
复制
function mysql_soundex($name)
{
    $snname = soundex($name);
    return $snname;
}

并在以下位置调用它:

代码语言:javascript
复制
$query = "SELECT * 
FROM database
WHERE mysql_soundex('surname')
LIKE '$sxname'"
;

但这也不管用。

EN

回答 1

Stack Overflow用户

发布于 2014-04-04 08:47:53

让MySQL只执行soundex转换:

代码语言:javascript
复制
$query =
        "SELECT * FROM database
        WHERE SOUNDEX(surname) = SOUNDEX('$name')";

..。或者严格等同的语法糖:

代码语言:javascript
复制
$query =
        "SELECT * FROM database
        WHERE surname SOUNDS LIKE '$name'";
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22849373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档