美文网首页数据库PHP程序猿
Mysql 常用SQL语句集锦

Mysql 常用SQL语句集锦

作者: 新亮笔记 | 来源:发表于2016-05-26 19:29 被阅读532次

    ** 查询时间,友好提示 **

    • 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) ";
    

    查询表的创建时间

    USE information_schema;
    SELECT CREATE_TIME FROM TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名';
    

    Thanks ~

    IT小圈儿

    相关文章

      网友评论

      本文标题:Mysql 常用SQL语句集锦

      本文链接:https://www.haomeiwen.com/subject/dysxdttx.html