1. 程式人生 > >MySQL一些SQL技巧

MySQL一些SQL技巧

1,一行轉多行      url列以分號分隔,將其一行轉化為多行,藉助自增長表help_topic 實現。
select a.channel_id,channel_code,site_name,siteid,refer_channel,substring_index(substring_index(a.url,';',b.help_topic_id+1),';',-1) as urls from  t_channel_mapping a join mysql.help_topic b on (length(a.url) - length(replace(a.url,';',''))+1) > b.help_topic_id; 
2,多行轉一行     分組後彙總成一行,orderid以逗號分隔  select SiteID,group_concat(distinct cast(orderid as char(8))) as orderid from  site_order group by SiteID3,MYSQL實現rownumber    mysql是不支援rownum函式,下面例子實現產品表中給產品一個順序編號    select @rownum:[email protected]+1 rownum, product
    from 
   (
       select (@rownum:=0),a.product 
    from 
        (select  product from  t_proudct_info  GROUP BY product) a
    ) t

4, MYSQL實現FIRST_VALUE(t.url) over(partition by siteid,refer_channel)   mysql中沒有類似oracle和postgreSQL的 OVER(PARTITION BY)功能,如下實現查詢每個分組中按url排序後第一個urlselect siteid,refer_channel,substring_index(group_concat( t.url ),',',1)
from (
select siteid,refer_channel,url from t_channel_mapping  order by siteid,refer_channel,url
) t group by siteid,refer_channel
5,MYSQL常用日期函式MySQL Date/Time to Str(日期/時間轉換為字串)函式:date_format(date,format), time_format(time,format)select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s');  
20080808222301 
MySQL Str to Date (字串轉換為日期)函式:str_to_date(str, format)
select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09
select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09
select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30


date_add()函式向日期新增指定的時間間隔。
DATE_ADD(OrderDate,INTERVAL 2 DAY)
DATE_ADD(OrderDate,INTERVAL -2 MONTH)

DATEDIFF() 函式返回兩個日期之間的天數。
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate

相關推薦

MySQL一些SQL技巧

1,一行轉多行      url列以分號分隔,將其一行轉化為多行,藉助自增長表help_topic 實現。select a.channel_id,channel_code,site_name,sitei

MySql一些sql語句

數據 logs log 語句 into 結果 tab from span 將tableA中的數據查詢結果插入tableB中 insert into tableB(colB_1,colB_2) select colA_1,colA_2 from tableA; .

006-mysql 一些技巧

mysql 一些小技巧 1、字串連線 1)concat(str1,str2,…):返回結果為連線引數產生的字串。      注意:如果其中一個引數為 null,則整個返回結果為 null。 SELECT CONCAT(‘tom’,‘cat’) as nam

sql技巧mysql修改時,動態指定要修改的字段 update `table` set (case when ....) = 1 where id = xx

幫助 ase stack pan 希望 需求 記錄 開始 lec 如果你點進了這篇帖子,那麽你一定遇到了跟我一樣的問題。別看題目的set case when...,我一開始也是第一反應是用case when但是發現並不好使。 問題呢,說得高大上一點:動態指定要修改的字段。

基於mysql一些sql語法

文本搜索 print use 客戶 .com fault lac images 磁盤 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 {

一些mysqlsql語句

max type 西湖 管理員 order by tree 便宜 信息 user SELECT hou.*,uname FROM hos_house AS hou INNER JOIN sys_user AS usr INNER JOIN hos_type AS hty O

mysql的操作的一些技巧

一、丟失root密碼 mysql密碼丟失後,需重新設定 1、在 mysql配置目錄下 etc/my.cnf 中加入 (mysqld下) skip-grant-tables 2、用空密碼進入mysql管理命令列 3、切換到mysql庫,執行update user set password=PA

MySQL中行列轉換的SQL技巧 • cenalulu's Tech Blog

詳細介紹MySQL中用SQL實現行列轉換的技巧 行列轉換常見場景 由於很多業務表因為歷史原因或者效能原因,都使用了違反第一正規化的設計模式。即同一個列中儲存了多個屬性值(具體結構見下表)。 這種模式下,應用常常需要將這個列依據分隔符進行分割,並得到列轉行的結果。 表資料:

軟體測試中所需的一些mysql操作和技巧

一:基礎操作。 1、說明:建立資料庫 CREATE DATABASE database-name 2、說明:刪除資料庫 drop database dbname 3、說明:備份sql server — 建立 備份資料的 device USE master EXEC sp_addumpdevi

mysql資料庫sql語句的一些常用優化方法

轉載請標明出處: http://http://write.blog.csdn.net/postedit/71422526本文出自縌時針_ 1.應儘量避免在 where 子句中使用!=或<&g

書寫SQL語句的一些技巧

tips:一句“select *”可以讓你的逼格直接掉成0 負向條件查詢不會使用索引 儘量避免not in/not exits的語句,改為使用in查詢 select * from table where flag in (1,2) 在欄位上進行計算不能使

mysql測試資料庫employees一些sql語句

一套SQL筆試題1、查詢整個職員表的所有內容。select *from employees2、檢視僱員名字(last_name)。select last_namefrom employees3、檢視僱員編號、名字和工種。select last_name,job_id,emp

一些非常有用的SQL技巧

一、 只複製一個表結構,不復制資料 select top 0 * into [t1] from [t2] 二、 獲取資料庫中某個物件的建立指令碼 1、 先用下面的指令碼建立一個函式 if exists(select 1 from sysobjects where i

提高mysql查詢效率及一些使用技巧記錄

使用inner join 內連線替代 in 查詢 select * from A where A.id in (select B.aid from B where B.name = '123'); ---------- select * from A in

Liferay 7 OSGi的一些技巧

liferay packages res ges shell portlet 依賴 include log 如果部署一個portlet到Liferay上,編譯沒有出現任何錯誤,卻提示有沒有解決的依賴,可能出現的問題是,我們這個portlet所需要的這個jar包在這個OSGi

Linux+Apache+Mysql+PHP優化技巧

建議 發生 /dev/ 意義 mac 恢復文件 客戶 效果 slave LAMP 平臺由四個組件組成,呈分層結構。每一層都提供了整個軟件棧的一個關鍵部分:Linux、Apache、MySQL、PHP。 LAMP這個詞的由來最早始於德國雜誌“c‘t Maga

jsp一些使用技巧

page lan brush XML exceptio oca cnblogs java 使用 1、web.xml中配置error頁面 一、<error-page> <error-code>500</error-code>

性能測試常用sql技巧_Oracle

star for 語句 計數 性能 table 實現 creator 自己   做了一段時間的性能測試,把自己在性能測試過程中,使用到的Oracle中用到的sql語句整理一番,做個備忘; (1)多個字段以某種格式拼接   "||"字符串拼接符;   示例:將“id”及“co

mysqlSQL註入搜集

prepare case when sch pass 字符 ble 失敗 sqli 16進制 SQL註入 例:腳本邏輯 $sql = “SELECT * FROM user WHERE userid = $_GET[userid] “; 案例1:SELECT * F

vim一些技巧

小技巧 編輯器 組合鍵 鍵盤vi 1.vim編輯器的替換模式與可視模式在一般模式下按鍵盤上的r和R進入替換模式。如果按小r那麽這時候就進入了替換模式,你下一個輸入的字符會把你當前光標所在處的字符替換,然後自動退出替換模式。如果你按的是大R那麽你下面輸入的所有字符會把後面的字符依次替換,直到按退