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

MySQL之FIND_IN_SET()的用法及說(shuō)明

 更新時(shí)間:2023年01月06日 14:28:27   作者:秦風(fēng)?  
這篇文章主要介紹了MySQL之FIND_IN_SET()的用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、語(yǔ)法

FIND_IN_SET(str,strlist)
  • str:要查詢的字符串
  • strList:一個(gè)被,號(hào)分隔開(kāi)的字符串
  • 函數(shù)是返回strList中str所在的位置索引

二、用法

  • SELECT FIND_IN_SET(‘e’, ‘a,b,c,d’); 結(jié)果是0
  • SELECT FIND_IN_SET(‘b’, ‘a,b,c,d’); 結(jié)果是2:因?yàn)閎在strlist集合中放在2的位置,從1開(kāi)始
  • SELECT FIND_IN_SET(‘c’, ‘a,b,c,d’); 結(jié)果是3

和in、like的區(qū)別

find_in_set(str,strlist)函數(shù)是用變量,strlist內(nèi)容是逗號(hào)分隔的字符串

  • in后面是要常量,表示一個(gè)個(gè)羅列,in(‘11’,‘12’,‘13’)
  • like是模糊匹配,find_in_set是精確匹配

三、用途

舉個(gè)例子一

當(dāng)數(shù)據(jù)庫(kù)表中,存在有逗號(hào)拼接的字符串的字段時(shí),查詢時(shí)候用FIND_IN_SET函數(shù)。

# 創(chuàng)建表
CREATE TABLE IF NOT EXISTS tb_test1(
	`id` INT(11) NOT NULL auto_increment,
    `name` varchar(255) NOT NULL COMMENT '名字',
    `type` varchar(255) NOT NULL COMMENT '類型: 1表示金卡;2表示銀卡;3表示銅卡',
    PRIMARY KEY  (`id`)
)ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = 'FIND_IN_SET使用';

# 新增數(shù)據(jù)
INSERT INTO tb_test1(name,type) VALUES('edg','1,2,3');
INSERT INTO tb_test1(name,type) VALUES('rng','2,3');
INSERT INTO tb_test1(name,type) VALUES('ig','1,3');

# 查詢
SELECT * FROM tb_test1 WHERE FIND_IN_SET('1',type); # 返回type中包含1的記錄

舉個(gè)例子二

一張部門(mén)表中,有個(gè)userIds字段,存放的是關(guān)聯(lián)的部門(mén)下用戶的id;比如:‘111,112,113’。

然后需要查詢返回的結(jié)果是,Dept對(duì)象中帶有user的對(duì)象數(shù)組。

CREATE TABLE IF NOT EXISTS dept(
	`id` INT(11) NOT NULL auto_increment,
    `name` varchar(255) NOT NULL COMMENT '部門(mén)名字',
    `user_ids` text DEFAULT NULL COMMENT '部門(mén)人員',
     PRIMARY KEY  (`id`)
)ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '部門(mén)表';
<resultMap id="ResultMap" type="com.test.entity.dept" >
     <id column="id" property="id" jdbcType="INTEGER" />
     <result column="name" property="name" jdbcType="VARCHAR" />
     <result column="user_ids" property="userIds" jdbcType="VARCHAR" />
     <association property="Users" resultMap="Usesr_map" /> // 在實(shí)體類中有List<User> Users
</resultMap>

<sql id="User_Column_List" >
    user.id user_id, user.name user_name
</sql>
    
<resultMap id="Usesr_map" type="com.test.entity.User">
	<id column="user_id" property="id" jdbcType="INTEGER" />
    <result column="user_name" property="name" jdbcType="VARCHAR" />
</resultMap>


<!-- 只返回user_ids中包含的id的user記錄 -->
<select id="selectOne" resultMap="ResultMap" parameterType="INTEGER" >
    SELECT
    e.id id,e.name name,e.user_ids user_ids,
    <include refid="User_Column_List"/>
    FROM dept e
    LEFT JOIN User user ON FIND_IN_SET(user.id,e.user_ids)
    WHERE e.id = #{e.id}
</select>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL之InnoDB下的鎖問(wèn)題

    MySQL之InnoDB下的鎖問(wèn)題

    這篇文章主要介紹了MySQL之InnoDB下的鎖問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL數(shù)據(jù)庫(kù)中Interval關(guān)鍵字的使用看這一篇就夠了

    MySQL數(shù)據(jù)庫(kù)中Interval關(guān)鍵字的使用看這一篇就夠了

    這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)中Interval關(guān)鍵字使用的相關(guān)資料,interval作為一個(gè)關(guān)鍵字時(shí),表示為時(shí)間間隔,常用在date_add()、date_sub()、subdate(),函數(shù)中,常用于時(shí)間的加減法,需要的朋友可以參考下
    2024-08-08
  • percona 實(shí)用工具之pt-kill使用介紹

    percona 實(shí)用工具之pt-kill使用介紹

    一個(gè)優(yōu)秀的kill MySQL連接的一個(gè)工具,是percona toolkit的一部分,在因?yàn)榭臻e連接較多導(dǎo)致超過(guò)最大連接數(shù)、某個(gè)有問(wèn)題的sql導(dǎo)致mysql負(fù)載很高時(shí),都需要將一些連接kill掉,這個(gè)工具主要就是這個(gè)用途
    2016-04-04
  • 最新評(píng)論

    桂平市| 宝坻区| 铁岭市| 都匀市| 将乐县| 永定县| 文登市| 利川市| 铜梁县| 自贡市| 河北区| 青海省| 白银市| 吉隆县| 自贡市| 二手房| 苍山县| 洞口县| 鹰潭市| 隆德县| 平阴县| 靖边县| 呼伦贝尔市| 米易县| 昭通市| 香河县| 上虞市| 上犹县| 安义县| 孟州市| 崇州市| 岳阳市| 屯留县| 台北县| 永宁县| 治多县| 韩城市| 八宿县| 栾川县| 德安县| 青神县|