这个SQL语句如何写???急急急!!!谢谢。。。

profans 2003-11-18 05:52:25
数据库表结构:
mysql> desc category_word;
+--------------+-----------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------+------+-----+------------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| categorykey | char(100) | | MUL | | |
| categorydata | int(11) | | MUL | 0 | |
| categorydate | date | | MUL | 0000-00-00 | |
| type_id | int(11) | | PRI | 0 | |
+--------------+-----------+------+-----+------------+----------------+

id : 为自动生成
categorykey : 关键字
categorydata : 关键字在网站的搜索量
categorydate : 日期(格式:20003-11-18)
type_id : 分类id(有:软件、Flash、mp3、文章)

我的网站上的以下栏目:软件、Flash、mp3、文章,这个表记录了各个分类的关键字每天的搜索量。
以下是我的代码,做要运行很长时间,总是程序超时:(
//////////////////////////////////////////////////////////////////////
//分类TOP50上榜天数
function type_top_day ($keyword, $id)
{
$sql = "SELECT distinct(categorydate) FROM category_word ORDER BY categorydate DESC";
$query = mysql_query ( $sql );

if ( $query ){

while ( $str_date = mysql_fetch_array ( $query ) )
{
$key_sql = "SELECT categorykey FROM category_word WHERE
type_id = '$id' AND categorydate = '$str_date[0]'
ORDER BY categorydata DESC LIMIT 50";
$key_query = mysql_query ( $key_sql );

while ( $arrkey = mysql_fetch_array ( $key_query ) )
{
if ( $keyword == $arrkey[0] )
{
$day++;
continue;
}
}

}
}else{
print ("SQL error<br>");
}

return $day;
}

谢谢!!!
...全文
30 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fish21cn 2003-11-19
  • 打赏
  • 举报
回复
为何要如此来统计天数?
不太明白.

光从SQL来看,两句好像都没有用到索引吧。
fish21cn 2003-11-19
  • 打赏
  • 举报
回复
能不能说明一下?

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧