如下是工做中經常使用的SQL語句 :sql
查詢時間,友好提示
$sql = "select date_format(create_time, '%Y-%m-%d') as day from table_name";segmentfault
$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 )";ui
刪除表中多餘的重複記錄(留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) ";spa
$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) ";unix
Thanks ~code