MySQL 常用函式

2021-09-30 01:15:07 字數 4642 閱讀 5762

新增首行遞增

declare 使用

-- declare @startdate datetime     時間處理

set@startdate

= cast(

'2019/02/01'

asdatetime

)-- declare @a int 整型

set@a=5

-- declare @user1 nvarchar(50) 字串型

set@user1

='張三'

統一使用:

select

@user2 這種方式

exists 是判斷是否存在,和in類似,但效率要比in高
select

*from emp (基礎表)

where empno >

0and

exists

(select 『x' from dept where dept.deptno = emp.deptno and loc = 『melb'

)select

*from emp (基礎表)

where empno >

0and deptno in

(select deptno from dept where loc = 『melb')

這兩句效果一樣

exists用於檢查子查詢是否至少會返回一行資料,該子查詢實際上並不返回任何資料,而是返回值true或false

'其它'

end'工資等級'

,count(*

)'人數'

from table_b

==模糊查詢

case

when

(t2.filter_method =

'like'

and t3.fieldtype =

'string'

)then locate(t2.filter_value,t.code_value)

==字串連線

case

when t.code_value like

'%'||t2.filter_value||

'%'=

=空值判斷

case

when t2.code_value is

null

then

''' '

''

空間函式
# 返回結果是km 為單位

select floor(st_distance_sphere(

geomfromtext(concat(

'point('

,117.2358

,' '

,31.805681

,')'))

, geomfromtext(concat(

'point('

,117.235804

,' '

,31.805672

,')'))

))distance from dual

時間
datediff:   

select datediff(

minute

,'2017-12-04 22:06:00'

,'2017-12-04 22:10:00'

),start_time

from table1 t

where t.id =

'56d7bf913ab147598544b2746512cac3'

時間戳轉時間

select unix_timestamp(

'2012-09-04 18:17:23'

)

時間轉時間戳

select from_unixtime(

1346753843

)

時區轉換

select convert_tz(

'2004-01-01 12:00:00'

,'+00:00'

,'+10:00');

從0時區轉成+

10時區

日期格式化

date_format(t.expiration_date ,

'%y-%m-%d'

) date_format(t.expiration_date ,

'%y-%m-%d %h:%i:%s'

)

date_format

%w 星期名字(sunday……saturday)

%d 有英語字首的月份的日期(

1st,

2nd,

3rd, 等等。)

%y 年, 數字,

4 位%y 年, 數字,

2 位%a 縮寫的星期名字(sun……sat)

%d 月份中的天數, 數字(

00……31

)%e 月份中的天數, 數字(

0……31

)%m 月, 數字(

01……12

)%c 月, 數字(

1……12

)%b 縮寫的月份名字(jan……dec

)%j 一年中的天數(

001……366

)%h 小時(

00……23

)%k 小時(

0……23

)%h 小時(

01……12

)%i 小時(

01……12

)%l 小時(

1……12

)%i 分鐘, 數字(

00……59

)%r 時間,

12 小時(hh:mm:ss [ap]m)

%t 時間,

24 小時(hh:mm:ss)

%s 秒(

00……59

)%s 秒(

00……59

)%p am或pm

%w 乙個星期中的天數(

0=sunday ……6

=saturday )

%u 星期(

0……52

), 這裡星期天是星期的第一天

%u 星期(

0……52

), 這裡星期一是星期的第一天

%% 乙個文字「%」。

所有的其他字元不做解釋被複製到結果中。

replace
update tablename set recordname=

replace

(recordname,

'abc'

,'ddd'

)//將表tablename中的recordname欄位中的 abc 替換為 ddd

cast
#轉字串:   

cast(t.bulletion_id as

char

) bulletion_id,

ifnull
#非空判斷:   

ifnull(t.title,

"") title

count使用

count()是sql92定義的標準統計行數的語法,所以mysql對他進行了很多優化,myisam中會直接把錶的總行數單獨記錄下來供count()查詢,而innodb則會在掃表的時候選擇最小的索引(可能非主鍵索引)來降低成本。當然,這些優化的前提都是沒有進行where和group的條件查詢。

在innodb中count()和count(1)實現上沒有區別,而且效率一樣,但是***count(字段)需要進行欄位的非null判斷,所以效率會低一些。

因為count()是sql92定義的標準統計行數的語法,並且效率高,所以請直接使用count()查詢表的行數!

mysql 常用函式迴圈 mysql 常用函式

mysql 常用函式 數字函式 ceiling x 返回大於x的最小整數值 floor x 返回小於x的最大整數值 truncate x,y 返回數字x截短為y位小數的結果 僅僅只是截斷,不會進行四捨五入計算 聚合函式 group concat col 返回由屬於一組的列值連線組合而成的結果 字串函...

mysql常用函式哪些 MySQL常用函式彙總

數學類函式 ceil x ceilin x 進一取整 floor x 捨掉小數部分 round x,y 四捨五入 保留y位小數 mod x,y x除以y以後的餘數 abs x 取x的絕對值 power x,y pow x,y 冪運算 x的y次冪 pi 圓周率 rand 或者rand x 0 1之間的...

mysql常用轉換函式 Mysql常用函式

ip位址轉換 inet aton 將ip位址轉換成數字型 inet ntoa 將數字型轉換成ip位址 phpip位址相互轉換 ip 轉整型 ip2long 133.114.56.135 轉整型後帶符號 2056111993 bindec decbin ip2long 133.114.56.135 轉...