zoukankan      html  css  js  c++  java
  • mysql in操作和find_in_set函数

    当我们要查询id为1,2,3,4的数据的时候,可以用 IN操作,例如:

      

    1 SELECT * from table where id in (1,2,3,4);
    View Code

    这时我有另外一个表里面的字段为A,存储的值为1,2,3,4,把它作为条件去查询的时候,那么语句就变成了

     

    1  SELECT * from table where id in (‘1,2,3,4’);
    View Code

    结果只能查到一条id为1的数据,想要查询4条数据怎么办呢。find_in_set派上用场了。

    语法:FIND_IN_SET(str,strlist)

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

    用法:select find_in_set('1','1,2,3,4');

      结果是1。

    这个时候就好办了,把查询语句改为:

      

    1 SELECT * from table where FIND_IN_SET(id,'1,2,3,4')
    View Code

    查询结果就是id为1,2,3,4这四条数据

  • 相关阅读:
    发卡构型高分子的跨膜传输
    《一个数学家的叹息》读后
    匀速拉地毯最少需要多大的力
    桥环形高分子的标度理论——链滴图像
    试验1
    自定义控件EditText
    自定义控件TextView
    HTTP的应用httpclient 和线程
    http的应用httpurlconnection--------1
    学习笔记—Fragement +Actionbar
  • 原文地址:https://www.cnblogs.com/godLike7/p/7283494.html
Copyright © 2011-2022 走看看