0

我在名为“St. Catharines”的区域列下的数据库中有一些东西

我想从没有句点的字符串中返回包含“St. Catharines”的记录。因此,字符串将是“St Catharines”。这可以做到吗?如何?

现在我有:

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

不幸的是,它不起作用。

句点始终不在$region字符串中,并且可以在数据库记录中的任何位置(即不仅仅是在“St”之后)。

4

2 回答 2

2

我不确定我是否完全跟随你,但类似的东西可能会起作用:

$region = "St. Catharines"; 
$query = " AND region like REPLACE($region, '.', '')" 

无论如何,我认为您应该使用 MySQL 内置函数(字符串操作)来实现这一点。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

于 2013-03-20T00:17:30.970 回答
0

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

您可以按空格拆分字符串(使用explode),并搜索例如两个部分:
如:$arr = explode(" ",$string);

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

结果,这将找到开头带有“St”的所有内容以及结果中包含“Catharines”的所有内容。

这是该问题的最佳解决方案,是部分匹配,虽然它可能会显示比您想要的结果更多的结果,但另一个解决方案类似于此处提到的内容:stackoverflow question about remove commas and etc

于 2013-03-20T00:07:53.620 回答