小编rol*_*fv1的帖子

通过php计算行数比SQL中的COUNT快?

简而言之,我的问题是:为什么会这样

SELECT r.x, r.y FROM `base` AS r
WHERE r.l=50 AND AND r.n<>'name' AND 6=(SELECT COUNT(*) FROM surround AS d 
    WHERE d.x >= r.x -1 AND d.x <= r.x +1 AND 
          d.y>=r.y -1 AND d.y<=r.y +1 AND d.n='name')
Run Code Online (Sandbox Code Playgroud)

比这慢很多:

$q="SELECT x,y FROM `base` WHERE l=50 AND n<>'name'";
$sr=mysql_query($q);
if(mysql_num_rows($sr)>=1){
    while($row=mysql_fetch_assoc($sr)){
        $q2="SELECT x,y FROM surround WHERE n='name' AND x<=".
            ($row["x"]+1)." AND x>=".($row["x"]-1).
            " AND y<=".($row["y"]+1)." AND y>=".($row["y"]-1)." ";
        $sr2=mysql_query($q2);
        if(mysql_num_rows($sr2)=6){
            echo $row['x'].','.$row[y].'\n';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

php版本需要大约300毫秒才能完成,如果我运行"纯SQL"版本,无论是通过phpadmin还是通过php,大约需要5秒钟(当我使用BETWEEN用于x和y的那些范围时甚至是13秒)

我怀疑SQL版本通常会更快,更有效率,所以我想,我做错了什么,还是有意义的?

编辑:我按要求添加了两个表的结构:

CREATE TABLE IF …
Run Code Online (Sandbox Code Playgroud)

php mysql sql

5
推荐指数
1
解决办法
806
查看次数

周数和年份组合

过去曾在 Excel 中的 Weeknumber 和 Year 上问过几个问题,但是,我有一个特定的问题,我找不到答案。

我正在尝试以 YYWW 的格式获取年份和周数的组合,例如 1752 或 1801,基于带有日期的列,如下所示:

Date         Year  Week
01-01-2018   18    01
02-01-2018   18    01
...
31-12-2018   18    01
Run Code Online (Sandbox Code Playgroud)

简单地使用YEAR日期上的函数确定年份,使用日期上的函数确定周数ISOWEEKNUM。然后进行一些进一步的处理,根据年份和周数汇总数据,问题是,2018 年第 1 周也考虑了 2018 年 12 月 31 日的数据,而 12 月 31 日显然是不是在 2018 年的第 1 周,而是在 2019 年的第 1 周。

所以问题是,我怎么能“解决”这个问题,那么我怎样才能让 Excel 在 31-12-2018 给我 19 & 01?理想情况下,我正在寻找不涉及任何 VBA 的解决方案。

任何帮助深表感谢!

excel

0
推荐指数
1
解决办法
4667
查看次数

标签 统计

excel ×1

mysql ×1

php ×1

sql ×1