MySQL返回的结果类似于字符串输入,但没有句号


MySQL Return Results Similar to String Input but Without Periods

我在数据库中有一个名为"St. Catharines"的区域列

我想从不带句号的字符串中返回包含"St. Catharines"的记录。所以琴弦应该是"圣凯瑟琳"这能做到吗?如何?

现在我有:

$region = "St Catharines"; 
$query = " AND region like '" . $region . "%'";

不幸的是,它不起作用。

句点将永远不在$region字符串中,并且可以在数据库记录中的任何位置(即不只是在"St"之后)。

我不确定我是否完全明白你的意思,但这样做可能会奏效:

$region = "St. Catharines"; 
$query = " AND region like REPLACE($region, '.', '')" 
无论如何,我认为你应该使用MySQL内置函数(字符串操作)来实现这一点。http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

你真的不应该那样做,这样不好,应该事先解决。

您可以用空格分隔字符串(使用explosion),并搜索例如这两部分:
Like a: $arr = explode(" ",$string);

$query = " AND (region LIKE '".$arr[0]."%' OR '%".$arr[1]."%')";

这将在结果中找到所有以"St"开头的内容和所有包含"Catharines"的内容。

这是该问题的最佳解决方案,是部分匹配,虽然它可能会显示更多的结果,然后你想要的,另一个解决方案是类似这里提到的:stackoverflow问题关于删除逗号等