0

我想看看数据库中有多少数组。它非常慢,我想知道是否有一种方法可以在没有 for 循环的情况下搜索多个单词或整个数组。我现在挣扎了一段时间。

这是我的代码

   $dateBegin = "2010-12-07 15:54:24.0";
$dateEnd = "2010-12-30 18:19:52.0";
$textPerson = " text text  text text  text text  text text  text text  text text  text text "; 



$textPersonExplode = explode(" ", $textPerson );



$db = dbConnect();
for ( $counter = 0;$counter <= sizeof($textPersonExplode)-1 ; $counter++) {


$query = "SELECT count(word) FROM `news_google_split`  WHERE `word` LIKE '$textPersonExplode[$counter]'   AND  `date` >= '$dateBegin' AND `date` <= '$dateEnd'"; 

$result = mysql_query($query) or die(mysql_error());



while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
 $word[] = $textPersonExplode[$counter];
 $count[] = $row[0];



}
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
}

谢谢您的帮助。

4

3 回答 3

0

查看全文索引

于 2011-01-13T22:48:15.303 回答
0

如果在查询中使用 MATCH..AGAINST 对,则可以避免 for 循环。IE:

    $query = "SELECT count(word) FROM `news_google_split`  WHERE MATCH(`word`) AGAINST   
('$textPerson')   AND  `date` >= '$dateBegin' AND `date` <= '$dateEnd'"; 
于 2011-01-13T22:49:35.407 回答
0

我们在 Db 中发送一个逗号分隔的列表,然后将该列表转换为一个表,然后我们在查询中以连接的形式使用该表。

但是,您需要确定可以传入多少数据作为查询或存储过程的输入。

于 2011-01-13T22:50:13.570 回答