最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中find_in_set()函數(shù)用法示例詳解

 更新時間:2022年09月09日 10:47:51   作者:Gan_1314  
find_in_set這個是mysql的一個函數(shù),見得比較少,下面這篇文章主要給大家介紹了關(guān)于MySQL中find_in_set()函數(shù)用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

1、 find_in_set()官方涵義(MySQL手冊中語法說明)

FIND_IN_SET(str,strlist),該函數(shù)的作用是查詢字段(strlist) 中是否包含(str)的結(jié)果,返回結(jié)果為 null或記錄 。

str 要查詢的字符串
strlist 需查詢的字段,參數(shù)以”,”分隔,形式如 (1,2,6,8,10,22)

假如字符串str在由N個子鏈組成的字符串列表strlist 中,則返回值的范圍在 1 到 N 之間。 一個字符串列表就是一個由一些被 ‘,’ 符號分開的子鏈組成的字符串。如果第一個參數(shù)是一個常數(shù)字符串,而第二個是type SET列,則FIND_IN_SET() 函數(shù)被優(yōu)化,使用比特計算。 如果str不在strlist 或strlist 為空字符串,則返回值為 0 。如任意一個參數(shù)為NULL,則返回值為 NULL。這個函數(shù)在第一個參數(shù)包含一個逗號( , )時將無法正常運行。

示例:

SELECT FIND_IN_SET('b', 'a,b,c,d');
// 結(jié)果:2
// 因為 b 在strlist集合中2的位置, a是位置1

select FIND_IN_SET('1', '1');
// 結(jié)果:1 
// 這時候的strlist集合有點特殊,只有一個字符串

select FIND_IN_SET('2', '1,2'); 
// 結(jié)果:2

select FIND_IN_SET('6', '1'); 
// 結(jié)果:0 strlist中不存在str,所以返回0。

綜上: FIND_IN_SET函數(shù)中,若前一個字符串包含在后一個字符串集合中,返回大于0的數(shù),該數(shù)為前一個字符串在后一個字符串中的位置。

2、find_in_set() 和 in 的區(qū)別

新建測試表,增加幾條測試數(shù)據(jù)。

CREATE TABLE `test` (
  `ID` int(11) NOT NULL,
  `LIST` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `test` VALUES ('1', 'AA,BB,CC');
INSERT INTO `test` VALUES ('2', 'AA,BB');
INSERT INTO `test` VALUES ('3', 'AA');

find_in_set()和in的查詢比較

-- IN查詢字段條件
SELECT id,list,'字段條件' AS 'IN字段' from TEST WHERE list in ('AA');

-- IN查詢常量條件-條件為真
SELECT id,list,'條件為真' AS 'IN常量條件為真' from TEST WHERE 'AA' in ('AA','BB');

-- IN查詢常量條件-條件為假
SELECT id,list,'條件為假' AS 'IN常量條件為假'  from TEST WHERE 'AA' in ('BB','CC');

-- FIND_IN_SET字段條件
SELECT id,list,'字段條件' AS 'FIND_IN_SET字段' from TEST WHERE FIND_IN_SET('AA', list);

-- FIND_IN_SET常量條件為真
SELECT id,list,'條件為真' AS 'FIND_IN_SET常量條件為真' from TEST WHERE FIND_IN_SET('AA', 'AA,BB,CC');

-- FIND_IN_SET常量條件為假
SELECT id,list,'條件為假' AS 'FIND_IN_SET常量條件為假' from TEST WHERE FIND_IN_SET('AA', 'BB,CC');

SELECT id,list FROM TEST WHERE FIND_IN_SET(list,'AA,BB')

區(qū)別:
1、in后面只能跟常量, find_in_set()函數(shù)可以使用常量或字段。
2、in是完全匹配,find_in_set()函數(shù)是精確匹配,字段值以英文”,”分隔。
另:like是廣泛的模糊匹配,字符串中沒有分隔符,F(xiàn)ind_IN_SET 是精確匹配,字段值以英文”,”分隔,F(xiàn)ind_IN_SET查詢的結(jié)果要小于like查詢的結(jié)果。

3、應(yīng)用場景

3.1 文章表type字段查詢

文章表里面有個type字段,它存儲的是文章類型,有 1頭條、2推薦、3熱點、4圖文等等 ?,F(xiàn)在有篇文章他既是頭條,又是熱點,還是圖文,type中以 1,3,4 的格式存儲。那我們?nèi)绾斡胹ql查找所有type中有4的圖文類型的文章呢?

select * from article where FIND_IN_SET('4',type)

3.2 部門樹查詢,匹配當前節(jié)點及所有子節(jié)點

1) 數(shù)據(jù)表字段說明

2) 匹配部門id或父id為100的數(shù)據(jù)

SELECT dept_id FROM sys_dept WHERE dept_id = 100 or FIND_IN_SET( 100 , ancestors ) 

總結(jié) 

到此這篇關(guān)于MySQL中find_in_set()函數(shù)用法詳解的文章就介紹到這了,更多相關(guān)MySQL find_in_set()函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 通過案例分析MySQL中令人頭疼的Aborted告警

    通過案例分析MySQL中令人頭疼的Aborted告警

    這篇文章通過案例跟大家分析了MySQL中令人頭疼的Aborted告警的相關(guān)資料,文中將Aborted告警介紹的非常詳細,對大家具有一定的參考學(xué)習價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • MySQL如何根據(jù)不同條件聯(lián)查不同表的數(shù)據(jù)if/case

    MySQL如何根據(jù)不同條件聯(lián)查不同表的數(shù)據(jù)if/case

    這篇文章主要介紹了MySQL如何根據(jù)不同條件聯(lián)查不同表的數(shù)據(jù)if/case問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Mysql Sql 語句練習題(50道)

    Mysql Sql 語句練習題(50道)

    mysql一直作為比較熱門的數(shù)據(jù)庫存儲,搭配php使用簡直是絕配,mysql的sql語句也是很重要的一門課,這里為大家分享一下sql語句,大家可以試試
    2020-12-12
  • 詳解MySQL的內(nèi)連接和外連接

    詳解MySQL的內(nèi)連接和外連接

    這篇文章主要介紹了詳解MySQL的內(nèi)連接和外連接,mySQL包含兩種聯(lián)接,分別是內(nèi)連接(inner join)和外連接(out join),但我們又同時聽說過左連接,交叉連接等術(shù)語,本文就帶大家來了解一下,需要的朋友可以參考下
    2023-05-05
  • 使用sql語句insert之前判斷是否已存在記錄

    使用sql語句insert之前判斷是否已存在記錄

    這篇文章主要介紹了使用sql語句insert之前判斷是否已存在記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 使用prometheus統(tǒng)計MySQL自增主鍵的剩余可用百分比

    使用prometheus統(tǒng)計MySQL自增主鍵的剩余可用百分比

    這篇文章主要介紹了使用prometheus統(tǒng)計MySQL自增主鍵的剩余可用百分比,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-04-04
  • 阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn)

    阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn)

    我們經(jīng)常會碰到需要遠程訪問數(shù)據(jù)庫的場景,本文主要介紹了阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 麒麟系統(tǒng)上安裝?MySQL?8.0.24的詳細步驟(避坑指南)

    麒麟系統(tǒng)上安裝?MySQL?8.0.24的詳細步驟(避坑指南)

    這篇文章主要介紹了麒麟系統(tǒng)上安裝MySQL8.0.24的詳細步驟,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • MySQL/Oracle數(shù)據(jù)庫的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串

    MySQL/Oracle數(shù)據(jù)庫的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串

    在許多數(shù)據(jù)庫中,你可以使用內(nèi)置的函數(shù)或操作符來進行字符串和日期之間的相互轉(zhuǎn)換,這篇文章主要給大家介紹了關(guān)于MySQL/Oracle數(shù)據(jù)庫的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • MySQL中distinct和group by去重的區(qū)別解析

    MySQL中distinct和group by去重的區(qū)別解析

    在MySQL中,我們經(jīng)常需要對查詢結(jié)果進行去重,而DISTINCT和GROUP BY是實現(xiàn)這一功能的兩種常見方法,這篇文章主要介紹了MySQL中distinct和group by去重的區(qū)別,需要的朋友可以參考下
    2025-01-01

最新評論

靖江市| 陆河县| 宜宾市| 平陆县| 工布江达县| 德昌县| 梅州市| 叙永县| 确山县| 岐山县| 自贡市| 新郑市| 寿光市| 浮山县| 永善县| 韶山市| 汝阳县| 蒲城县| 小金县| 辉县市| 凤翔县| 永安市| 赞皇县| 山东省| 兴和县| 甘孜县| 高雄县| 南安市| 宕昌县| 梅州市| 马山县| 芒康县| 嘉峪关市| 青冈县| 汉阴县| 鞍山市| 民权县| 塔城市| 航空| 涿鹿县| 故城县|