我想看一下数据库中有多少数据。它很慢,我想知道是否有一种搜索方式,如多个单词或整个数组没有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());
}
}
感谢您的帮助。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果在查询中使用MATCH..AGAINST对,则可以避免使用for循环。即:
$query = "SELECT count(word) FROM `news_google_split` WHERE MATCH(`word`) AGAINST
('$textPerson') AND `date` >= '$dateBegin' AND `date` <= '$dateEnd'";
答案 2 :(得分:0)
我们在Db中发送一个逗号分隔列表,然后将该列表转换为表格,然后我们以连接的形式在查询中使用该表。
但是,您需要确保可以传入多少数据作为查询或存储过程的输入。