MySQL 易错点

1.数据为空时候,count,sum返回结果不同

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '';
try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
//Execute a prepared statement by passing an array of values 
$sth = $dbh->prepare("select sum(id) as num from user where last_login_time>?");
$rs = $sth->execute([date('Y-m-d H:i:s')]);
$red = $sth->fetch(PDO::FETCH_ASSOC);
var_dump($red);
结果:

这里写图片描述

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '';
try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
//Execute a prepared statement by passing an array of values 
$sth = $dbh->prepare("select count(*) as num from user where last_login_time>?");
$rs = $sth->execute([date('Y-m-d H:i:s')]);
$red = $sth->fetch(PDO::FETCH_ASSOC);
var_dump($red);
结果:

这里写图片描述
所以对于sum的值需要处理一下$sum?:0

2.时间筛选问题

需求:统计昨天的数据,数据库字段created_at datetime类型
where TO_DAYS(NOW())-TO_DAYS(created_at)=1 这就表示取昨天数据

3.建表字段命名规范

字段名不应该为SQL语句中自带的操作符,例如:JOIN,CONDITION,GROUP,DISTINCT等,否则在插入,更新时候会报错

猜你喜欢

转载自blog.csdn.net/z15818264727/article/details/80622874
今日推荐