MySQL常用函數(shù)總結(jié)

一、DATE_FORMAT

用于以不同的格式顯示日期/時(shí)間數(shù)據(jù)。
語法

DATE_FORMAT(date,format)

date為查詢的時(shí)間,format 為要獲得的時(shí)間格式
其中format可為:
%a :返回縮寫星期名
%b :返回縮寫月份名
%c :返回月份的數(shù)值
%D:返回帶有英文前綴的月中的天
%d :返回月份的天(00-31)
%e :返回月份的天(0-31)
%f :返回微秒
%H:返回小時(shí)(00-23)

二、FIND_IN_SET函數(shù)

FIND_IN_SET('name','張三,李四,james')

通過內(nèi)部函數(shù)的轉(zhuǎn)換可以裝轉(zhuǎn)為類似于 name in('張三','李四','james')語句
不過在數(shù)據(jù)較多的查詢中使用FIND_IN_SET函數(shù)效率沒有使用in效率高

三、GROUP_CONCAT()函數(shù)

select id,group_concat(name) from aa group by id;//默認(rèn)將以,號(hào)分割 
或者:select id,group_concat(name separator ',') from aa group by id;//指定分隔符

這個(gè)函數(shù)可以將查詢結(jié)果進(jìn)行拼裝,
對時(shí)間進(jìn)行處理得到想要的年份等類型數(shù)據(jù)

四、時(shí)間函數(shù)

NOW():查取現(xiàn)在時(shí)間:2020-09-10 17:47:04
CURDATE():2020-09-10
CURTIME():17:47:04

五、字符串轉(zhuǎn)換為數(shù)字

1、使用conert()進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換
SELECT
    dfp.device_id,
    dfp.device_name,
    dfp.device_type,
    dfp.project_id,
    ibp.`project_name ` 
FROM
    device_config dfp
LEFT JOIN project ibp ON CONVERT(dfp.project_id , SIGNED) = ibp.id
2、cast進(jìn)行轉(zhuǎn)換
SELECT
    dfp.device_id,
    dfp.device_name,
    dfp.device_type,
    dfp.project_id,
    ibp.`project_name`
FROM
    device_config dfp
LEFT JOIN project ibp ON CAST(dfp.project_id AS SIGNED INTEGER) = ibp.id

六、any_value()函數(shù)

MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模式默認(rèn)設(shè)置為打開狀態(tài)。
在此模式下,target list中的值要么是來自于聚合函數(shù)(sum、avg、max等)的結(jié)果,要么是來自于group by list中的表達(dá)式的值。
使用any_value()函數(shù)來抑制ONLY_FULL_GROUP_BY值被拒絕

SELECT any_value(id),any_value(price),brand FROM goods GROUP BY brand;

注意點(diǎn):當(dāng)有多個(gè)字段查詢且分組時(shí)可能造成獲取結(jié)果錯(cuò)誤

七、按照漢語拼音排序

mysql使用的默認(rèn)utf8編碼時(shí),如果直接order by 中文字段排序,排序結(jié)果會(huì)不正確,將字段先轉(zhuǎn)換成gbk編碼再排序

CONVERT(fname USING gbk) DESC

八、強(qiáng)制索引

當(dāng)發(fā)現(xiàn)優(yōu)化查詢器使用的索引不是最優(yōu)索引時(shí)可使用此函數(shù)強(qiáng)制指定使用什么索引

SELECT
    customer,
    count( 1 ) c 
FROM
    upv_ ** FORCE INDEX ( idx_created ) 
WHERE
    created BETWEEN "2015-07-06" 
    AND "2015-07-07" 
GROUP BY
    customer 
HAVING
    c > 15 
ORDER BY
    c DESC
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容