精华内容
下载资源
问答
  • tp5如何使用FIND_IN_SET函数,thinkphp5中mysql函数FIND_IN_SET用法

    thinkphp5中使用mysql find_in_set语法

    原生SQL语句进行查询示例:

    Db::table('user')->where('find_in_set(1,ids)')->select();
    

    查询表达式示例

    Db::table('user')->where('exp','FIND_IN_SET(1,ids)')->select();
    

    数组条件查询形式示例:

    $where[]=['exp','FIND_IN_SET(2,ids)'];
    
    展开全文
  • FIND_IN_SET

    千次阅读 2014-09-24 10:49:46
    select * from table where FIND_IN_SET(11,str) FIND_IN_SET(str,strlist)    如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一...
    select * from table where FIND_IN_SET(11,str)
    

    FIND_IN_SET(str,strlist) 
     
    如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。   
    mysql>    SELECT    FIND_IN_SET( 'b ', 'a,b,c,d ');



    这就要我们的find_in_set出马的时候到了.

    以下为引用的内容:

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

    ----------------------------------------------------------
    mysql手册中find_in_set函数的语法:

    FIND_IN_SET(str,strlist)

    假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。
    一个字符串列表就是一个由一些被‘,’符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。
    如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

    mysql> SELECT FIND_IN_SET('b','a,b,c,d');

    -> 2 因为b 在strlist集合中放在2的位置 从1开始
    --------------------------------------------------------
    select FIND_IN_SET('1','1'); 返回 就是1 这时候的strlist集合有点特殊 只有一个字符串 其实就是要求前一个字符串 一定要在后一个字符串集合中 才返回 大于0的数

    select FIND_IN_SET('2','1,2');返回2
    select FIND_IN_SET('6','1'); 返回0
    ----------------------------------------------------------

    注意:
    select * from treenodes where FIND_IN_SET(id,'1,2,3,4,5');
    使用find_in_set函数一次返回多条记录

    id 是一个表的字段 然后每条记录分别是id等于1,2,3,4,5的时候
    有点类似in (集合)
    select * from treenodes where id in (1,2,3,4,5);
    展开全文
  • SELECT * FROM GROUP_DATA G WHERE FIND_IN_SET("2",G.GROUP_USER_IDS); 二,oracle 实现方法 方案一(说明:INSTR函数查询时把GROUP_USER_IDS 字段值 1,2,3,4 改成 ,1,2,3,4, 然后查询 ,2,) SEL...

    基础数据(GROUP_DATA )其中GROUP_USER_IDS用逗号拼接。

    需求:根据用户id查询所属的组名

    一,Mysql 的FIND_IN_SET 函数

    SELECT  *  FROM  GROUP_DATA  G WHERE FIND_IN_SET("2",G.GROUP_USER_IDS);

    二,oracle 实现方法

    方案一(说明:INSTR函数查询时把GROUP_USER_IDS 字段值 1,2,3,4  改成   ,1,2,3,4,   然后查询 ,2,

    SELECT
         G.ID,
         G.GROUP_NAME,
         G.GROUP_USER_IDS
    FROM
    GROUP_DATA G
    WHERE INSTR(','||G.GROUP_USER_IDS||',',',2,') > 0;

    方案二(oracle实现FIND_IN_SET函数)

    参考地址:https://blog.51cto.com/xiaok007/2139728

    CREATE OR REPLACE FUNCTION FIND_IN_SET(piv_str1 varchar2, piv_str2 varchar2, p_sep varchar2 := ',')
    
    RETURN NUMBER IS      
    
      l_idx    number:=0; -- 用于计算piv_str2中分隔符的位置  
    
      str      varchar2(500);  -- 根据分隔符截取的子字符串  
    
      piv_str  varchar2(500) := piv_str2; -- 将piv_str2赋值给piv_str  
    
      res      number:=0; -- 返回结果  
    
      loopIndex number:=0;
    
    BEGIN  
    
    -- 如果piv_str中没有分割符,直接判断piv_str1和piv_str是否相等,相等 res=1  
    
    IF instr(piv_str, p_sep, 1) = 0 THEN  
    
       IF piv_str = piv_str1 THEN   
    
          res:= 1;  
    
       END IF;  
    
    ELSE  
    
    -- 循环按分隔符截取piv_str  
    
    LOOP  
    
        l_idx := instr(piv_str,p_sep);  
    
         loopIndex:=loopIndex+1;
    
    -- 当piv_str中还有分隔符时  
    
          IF l_idx > 0 THEN  
    
    
       -- 截取第一个分隔符前的字段str  
    
             str:= substr(piv_str,1,l_idx-1);  
    
       -- 判断 str 和piv_str1 是否相等,相等 res=1 并结束循环判断  
    
             IF str = piv_str1 THEN   
    
               res:= loopIndex;  
    
               EXIT;  
    
             END IF;  
    
            piv_str := substr(piv_str,l_idx+length(p_sep));  
    
          ELSE  
    
       -- 当截取后的piv_str 中不存在分割符时,判断piv_str和piv_str1是否相等,相等 res=1  
    
            IF piv_str = piv_str1 THEN   
    
               res:= loopIndex;  
    
            END IF;  
    
            -- 无论最后是否相等,都跳出循环  
    
            EXIT;  
    
          END IF;  
    
    END LOOP;  
    
    -- 结束循环  
    
    END IF;  
    
    -- 返回res  
    
    RETURN res;  
    
    END FIND_IN_SET;  

     

    展开全文
  • 主要介绍了Mysql中FIND_IN_SET()和IN区别简析,设计实例代码,具有一定参考价值。需要的朋友可以了解。
  • Mysql中的find_in_set的使用方法介绍,需要的朋友可以参考一下
  • Mysql中find_in_setin、like的区别

    千次阅读 2019-04-10 16:54:53
    Mysql中find_in_setin、like的区别 find_in_set有三种用: 注:a,b,c代表字符串常量,name代表字段名 1、find_in_set('b','a,b,c') 这个是find_in_set主要用法,find_in_set都有返回值, 如这个的返回值为2 ...

    Mysql中find_in_set与in、like的区别
    find_in_set有三种用:
        注:a,b,c代表字符串常量,name代表字段名
        1、find_in_set('b','a,b,c')     
            这个是find_in_set主要用法,find_in_set都有返回值,
            如这个的返回值为2 ,查不到返回值为0或者null(其中有一个参数为null的情况下返回null) 
        2、find_in_set('b',name)          
            查找name字段中包含b的字段但是name值的记录方式必须是'a,b,c' 
            
            这个用法跟name like "%'b'%" 类似,不同的是:find_in_set是精确匹配,like是模糊匹配
            比如:name的一个值为'a,ab,c' find_in_set则返回为0,like则能查到
        3、find_in_set(name,'a,b,c')
            这个用法跟name in ('a','b','c')结果是相同的
            区别是find_in_set是拼接成的一个字符串'a,b,c'
            in是多个字符串'a','b','c'
     

    展开全文
  • 这就要我们的 find_in_set 出马的时候到了。以下为引用的内容: select * from article where FIND_IN_SET('4',type) ———————————————————- MySQL手册中find_in_set函数的语法: FIND_IN_SET...
  • Mysql 中 find_in_set()

    千次阅读 2018-07-13 08:45:44
    在本教程中,您将学习如何使用MySQL FIND_IN_SET()函数返回指定字符串在以逗号分隔的字符串列表中的位置。   MySQL FIND_IN_SET函数简介 MySQL提供了一个名为FIND_IN_SET()的内置字符串函数,允许您在逗号分隔...
  • find_in_set

    千次阅读 2018-07-24 16:55:29
    1.in查询相当于多个or条件的叠加,例如: select * from user where user_id in (1,2,3); 等效于 select * from user where user_id = 1 or user_id = 2 or user_id = 3; not inin相反,如下 select * from user ...
  • 本文章来为各位介绍一篇关于mysql 实现按 where in () 中的顺序排序,用find_in_set() 函数的教程,希望此教程能够对各位有所帮助。 select * from table where id in ('783',' 769',' 814',' 1577',' 1769') ...
  • 很多时候我们在设计数据库... 先看mysql手册中find_in_set函数的语法: FIND_IN_SET(str,strlist) 假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。一个字符串列表就是一个由一些被
  • 主要介绍了mysql中find_in_set()函数的使用以及in()用法详解,需要的朋友可以参考下
  • FIND_IN_SET函数

    万次阅读 2018-12-01 14:13:39
    FIND_IN_SET函数是IN函数的升级版.功能类似. 区别在于:如果是常量,则可以直接用IN, 否则要用FIND_IN_SET()函数 MySQL中原型为:FIND_IN_SET(str,strlist)。 假如字符串str 在由N 子链组成的字符串列表strlist 中...
  • yii2 FIND_IN_SET

    千次阅读 2019-02-28 10:48:24
    yii2FIND_IN_SET yii2 new Expression https://blog.csdn.net/qq6759/article/details/81743348
  • 文章目录问题场景infind_in_set的区别有序匹配 locate无序匹配 Mybatis foreach 问题场景 现在有一张表,type,是逗号拼接存储的。 infind_in_set的区别 SELECT * FROM `test` where type in(1); ...
  • MySQL find_in_set()函数

    千次阅读 2018-08-27 12:59:57
    转载自 MySQL find_in_set()函数 MySQL FIND_IN_SET函数简介 MySQL提供了一个名为FIND_IN_SET()的内置字符串函数,允许您在逗号分隔的字符串列表中查找指定字符串的位置。 下面说明了FIND_IN_SET()函数的语法。 ...
  • FIND_IN_SET查询area字段内包含41,42,43,44的所有记录(area存储的数据格式为...select id,area from xxxxxxxxxx where FIND_IN_SET(41,area) or FIND_IN_SET(32,area) or FIND_IN_SET(43,area) or FIND_IN_SET(44,area)
  • MySql函数 - FIND_IN_SET函数

    千次阅读 2017-09-12 20:56:02
    MySql函数 - FIND_IN_SET函数1.函数简介FIND_IN_SET函数 是一个比like关键字更加高级的精确查询匹配 2.调用形式// 可以用Java中的set集合来理解,在一个set集合中查找某个值是否存在 find_in_set('欲查找的值','被...
  • mysql find_in_set

    2013-06-14 12:24:49
    mysql 函数find_in_set 用法 select * from users where find_in_set(user_id,''1,2,3"); 效果等同于 select * from users where user_id in (''1,2,3");
  • mysql中find_in_set()和in的区别

    千次阅读 2017-12-25 15:17:15
    总结:like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。
  • FIND_IN_SET在tp的用法

    千次阅读 2018-03-26 15:30:55
    FIND_IN_SET(str,strlist)函数 str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 查询字段(strlist)中包含(str)的结果,返回结果为null或记录 tp3一般用法 $where['_string'] = 'FIND_IN_...
  • mybatis中 find_in_setin的使用

    千次阅读 2017-07-19 17:06:51
    mybatis中 find_in_setin的使用 1. find_in_setFIND_IN_SET(str,strlist) ;  假设,字符串str在strlist的列表中,其中strlist 的字符串是被“,”分开的,那么在mybatis中的查询语句为 “find_in_...
  • Oracle FIND_IN_SET函数

    2020-08-20 15:35:47
    需求 oracle某字段存放的是逗号分隔的id字符串。 现在需要通过id来筛选,且id可以多选 与...create or replace function find_in_set(arg1 in varchar2,arg2 in varchar) return number is Result number; begin ...
  • sql 的 find_in_set函数使用方法

    千次阅读 2017-11-28 08:49:23
    find_in_set
  • MySQL 优化:FIND_IN_SET 使用

    千次阅读 2020-11-03 09:35:42
    文章目录背景简述简单使用和 in 的区别和 like 的区别 背景 最近在优化项目遇到一个场景:数据库表中某个字段...使用 find_in_set 函数 简述 MySQL手册中find_in_set函数的语法: FIND_IN_SET(str,strlist) str 要查

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 504,335
精华内容 201,734
关键字:

find_in_set