我有一个字符串,我需要使用php搜索,看看是否存在2-3百万条款。字符串可以是1000个字长,搜索字词最长可达5个字。
我尝试过strpos和strstr,但执行时间超过60秒。
有人可以提出替代方案吗?
到目前为止,我有以下内容:
$query = "SELECT City FROM cities";
$result = mysql_query($query);
if ($row = mysql_fetch_array($result)) {
do {
$city = " " . $row['City'] . " ";
if(strpos($string, $city)!== False) {
echo $city . "<br />\n";
}
} while ($row = mysql_fetch_array($result));
}
答案 0 :(得分:1)
从PHP获取负载并提供给Mysql。
这里不是在循环中用PHP进行搜索,而是可以使用mysql LIKE函数来搜索字符串。
例如: SELECT 城市 FROM 城市 LIKE %搜索文字%
如果您有更多搜索文本,您可以使用OR开关或 JOIN sql查询来查找这些文本。
这会更快,你不需要60秒执行。
祝你好运- Sajith
答案 1 :(得分:0)
我建议遵循:
O(1)