欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

position函數(shù)怎么在postgresql中使用-創(chuàng)新互聯(lián)

本篇文章為大家展示了position函數(shù)怎么在postgresql 中使用,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、金堂縣網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為金堂縣等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

起因:

postgresql中position函數(shù)提供從頭查找返回第一個(gè)匹配到字符串的下標(biāo)。

而我需要返回從后向前查找第一個(gè)匹配到的坐標(biāo),但是postgressql并未提供相關(guān)函數(shù),所以自己寫(xiě)了如下代碼提供相關(guān)功能:

CREATE OR REPLACE FUNCTION lastindexof(text, character)
 RETURNS integer AS
$BODY$
begin
 if $1 is null then return NULL;
 end if;
 for i in reverse length($1) .. 1
 loop
  if substr($1,i,1) = $2 
  then
   return i;
  end if;
 end loop;
 return NULL;
end
$BODY$
LANGUAGE plpgsql IMMUTABLE STRICT

本來(lái)以為事情完美解決,但是性能的差距卻讓人感覺(jué)很失望,如下圖

position函數(shù)怎么在postgresql 中使用

數(shù)據(jù)庫(kù)原生的“position”和自己提供“l(fā)astindexof”,居然產(chǎn)生了30倍以上的性能差距,那么探究緣由就變成一個(gè)有意思的事情。也算第一次嘗試翻閱數(shù)據(jù)庫(kù)源碼,中間總是有點(diǎn)小麻煩,不過(guò)當(dāng)我找到如下代碼的時(shí)候,那種恍然大悟的欣喜也算滿足了自己求知欲。

position函數(shù)怎么在postgresql 中使用

注意看1054行,運(yùn)用了指針~ 可見(jiàn)數(shù)據(jù)庫(kù)底層運(yùn)算,用了引用傳遞,而我自己寫(xiě)的函數(shù)是一個(gè)拷貝傳遞。

原因找到了,解決問(wèn)題也就手到擒來(lái),拿C寫(xiě)一個(gè)擴(kuò)展?或者?

本可以拿C寫(xiě)一些底層代碼練練手,不過(guò)那又需要重新編譯等等,時(shí)間有限,留給以后去做吧,先想個(gè)簡(jiǎn)單的辦法去解決它。

解決方法如下

select length(dir) -position('/' in reverse(dir)) +1 from log_hup_ftp_30

測(cè)試性能截圖

position函數(shù)怎么在postgresql 中使用

好吧,雖然由于函數(shù)的復(fù)雜性增加,性能還是慢了一倍多,但是比起之前5s之久還是快了不少。

tips:

最近得到德哥的回答,引用傳遞可以使用游標(biāo)類(lèi)型!再次謝謝德哥~

補(bǔ)充: SQL之查詢函數(shù)LOCATE、POSITION、INSTR、FIND_IN_SET、IN、LIKE

LOCATE()

返回要查詢的字符串在被查詢字符串里第一次出現(xiàn)的位置

注:當(dāng)在 MySQL 4.0 中時(shí),如有任一參數(shù)是一個(gè)二進(jìn)制字符串,它才是字母大小寫(xiě)敏感的

LOCATE(substr,str)

返回substr字符串在str里第一次出現(xiàn)的位置,沒(méi)有返回0

SELECT LOCATE('.',t.str)FROM `table` t;
>5

LOCATE(substr,str,pos)

返回substr字符串在str里pos(起始位置)出現(xiàn)的位置,沒(méi)有返回0

注:pos必須大于第一次出現(xiàn)的位置,才能顯示第二次出現(xiàn)的位置

SELECT LOCATE('.',t.str,6)FROM `table` t;
>9//當(dāng)小于等于第一次出現(xiàn)的位置(5)時(shí),返回的還是第一次出現(xiàn)的位置

POSITION()

返回要查詢的字符串在被查詢字符串里第一次出現(xiàn)的位置(和locate用法一樣,查了很多資料position是locate的別名)

POSITION(substr IN str)

返回substr字符串在str出現(xiàn)的位置,沒(méi)有返回0

SELECT POSITION('cn' IN t.str)FROM `table` t;
>10

INSTR()

返回要查詢的字符串在被查詢字符串里第一次出現(xiàn)的位置。這和LOCATE()的雙參數(shù)形式相同,只是參數(shù)的順序被顛倒。

INSTR(str,substr)

返回substr字符串在str出現(xiàn)的位置,沒(méi)有返回0

SELECT INSTR(t.str,'com')FROM `table` t;
>6

FIND_IN_SET()

返回在集合中的索引位置(豎向發(fā)展)

FIND_IN_SET(str,strlist)

返回str1在strlist集合中的索引位置

SELECT FIND_IN_SET('demo.com.cn',t.str) FROM `table` t;
>1//返回索引

IN()

返回在集合中的索引位置(同F(xiàn)IND_IN_SET)

str IN (strlist)

返回str1在strlist集合中的索引位置

SELECT 'demo.com.cn' IN(t.str) FROM `table` t;
>1//返回索引

LIKE

返回類(lèi)似(模糊)字符的集合

LIKE %str%

返回以str類(lèi)似的集合

上述內(nèi)容就是position函數(shù)怎么在postgresql 中使用,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前名稱(chēng):position函數(shù)怎么在postgresql中使用-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://aaarwkj.com/article36/ccdpsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站網(wǎng)站改版、網(wǎng)站收錄、定制開(kāi)發(fā)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
亚洲乱码国产乱码精品| 午夜剧场福利在线观看| 美腿丝袜亚洲综合一区| 国产强烈高潮粗暴对白| 亚洲av天堂天天天堂色| 中文字幕av免费专区| 91精品中综合久久久久| 久久精品国产亚洲av高清大结局 | 国产精品白嫩初高中害羞小美女 | 91中文字幕国产日韩| 亚洲综合日韩丝袜人妻| 国产成人亚洲欧美激情| 91制片国产在线观看| 麻豆视传媒官网免费观看| 国产传媒网约在线观看| av中文在线免费观看| 日韩亚洲精品99综合观看| 亚洲国产精品一区二区成人| 欧美伊人色综合久久天天| 亚洲国产自拍精品视频| 日韩精品中文字幕影视| 国产91精品成人在线观看| 欧美日韩视频在线第一页| 最新日韩av一区二区| 国产高清不卡一区二区| 日韩50岁老女人骚色| 久久国产精品一区av瑜伽| 国产在线观看国产精品| 日本一区二区手机在线| 6080yy精品一区二区三区| 色噜噜色一区二区三区| 国产成人午夜视频免费一区| 精品国产一区二区av麻豆| 日韩中文字幕亚洲精品一| 高清偷自拍亚洲精品三区| 天天操天天射夜夜爽| 黄色欧美在线观看免费| 中文字幕乱码亚州精品一区| 午夜福利视频在线一区| 好吊视频在线免费观看| 欧美日韩国产看片一区二区|