查询时间,友好提示

  • timestamp 日期类型
$sql = \"select date_format(create_time, \'%Y-%m-%d\') as day from table_name\";
  • int 时间戳类型
$sql = \"select from_unixtime(create_time, \'%Y-%m-%d\') as day from table_name\";

一个sql 返回多个总数

$sql = \"select count(*) all, \" ;
$sql .= \" count(case when status = 1 then status end) status_1_num, \";
$sql .= \" count(case when status = 2 then status end) status_2_num \";
$sql .= \" from table_name\";

Update Join / Delete Join

$sql = \"update table_name_1 \";
$sql .= \" inner join table_name_2 on table_name_1.id = table_name_2.uid \";
$sql .= \" inner join table_name_3 on table_name_3.id = table_name_1.tid \";
$sql .= \" set *** = *** \";
$sql .= \" where *** \";

//delete join 同上。

替换某字段的内容的语句

$sql = \"update table_name set content = REPLACE(content, \'aaa\', \'bbb\') \";
$sql .= \" where (content like \'%aaa%\')\";

获取表中某字段包含某字符串的数据

$sql = \"SELECT * FROM `表名` WHERE LOCATE(\'关键字\', 字段名) \";

获取字段中的前4位

$sql = \"SELECT SUBSTRING(字段名,1,4) FROM 表名 \";

查找表中多余的重复记录

  • 单个字段
$sql = \"select * from 表名 where 字段名 in \";
$sql .= \"(select 字段名 from 表名 group by 字段名 having count(字段名) > 1 )\";
  • 多个字段
$sql = \"select * from 表名 别名 where (别名.字段1,别名.字段2) in \";
$sql .= \"(select 字段1,字段2 from 表名 group by 字段1,字段2 having count(*) > 1 )\";

删除表中多余的重复记录(留id最小)

  • 单个字段
$sql = \"delete from 表名 where 字段名 in \";
$sql .= \"(select 字段名 from 表名 group by 字段名 having count(字段名) > 1)  \";
$sql .= \"and 主键ID not in \";
$sql .= \"(select min(主键ID) from 表名 group by 字段名 having count(字段名 )>1) \";
  • 多个字段
$sql = \"delete from 表名 别名 where (别名.字段1,别名.字段2) in \";
$sql .= \"(select 字段1,字段2 from 表名 group by 字段1,字段2 having count(*) > 1) \";
$sql .= \"and 主键ID not in \";
$sql .= \"(select min(主键ID) from 表名 group by 字段1,字段2 having count(*)>1) \";

Thanks ~