MySQL的FIND_IN_SET函数使用方法分享
很多时候我们在设计数据库时有这种情况,比如:
有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等
现在有篇文章他既是 头条,又是热点,还是图文,
type中以 1,3,4的格式存储.
那们我们如何用sql查找所有type中有4图文标准的文章呢,
这就要我们的find_in_set出马的时候到了.
先看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
用起来很简单
就以上面我说到的情况来举例:
select * from article where FIND_IN_SET('4',type)
相关推荐
-
Mysql中的find_in_set的使用方法介绍
使用举例: 用户表(user)中的一个字段(purview)代表该用户的权限 将用户的所有权限id存入此字段.比如有:1,2,3,4,5这样的五个权限 查找哪些用户拥有权限id为1的权限 复制代码 代码如下: select * from user where find_in_set('1',purview); sql语句 sql解释:查出所有拥有1这个权限的所有用户的信息. 这样设计数据表的目的是减少表的数量,但是会增加更新的难度!
-
mysql通过find_in_set()函数实现where in()顺序排序
本文章来为各位介绍一篇关于mysql 实现按 where in () 中的顺序排序,用find_in_set() 函数的教程,希望此教程能够对各位有所帮助. select * from table where id in ('783',' 769',' 814',' 1577',' 1769') order by find_in_set( id, '783, 769, 814, 1577, 1769' ) 查出来: 769 1577 814 1769 783 为什么不是 783 769 814
-
Mysql中FIND_IN_SET()和IN区别简析
前段时间项目中使用到Mysql的FIND_IN_SET函数,感觉挺好用的.过一段时间,老大找到我说,这个需要改为IN,哈哈,只能改了,原因会在下面分析到! 弄个测试表来说说两者的区别,测试数据直接在问答区copy一份,能说明问题就行,哈哈,如果侵犯您的版权还请见谅,互联网吗,就需要分享! 测试代码: CREATE TABLE `test` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `list` var
-
MySQL的FIND_IN_SET函数使用方法分享
很多时候我们在设计数据库时有这种情况,比如: 有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等 现在有篇文章他既是 头条,又是热点,还是图文, type中以 1,3,4的格式存储. 那们我们如何用sql查找所有type中有4图文标准的文章呢, 这就要我们的find_in_set出马的时候到了. 先看mysql手册中find_in_set函数的语法: FIND_IN_SET(str,strlist) 假如字符串str 在由N 子
-
mysql中find_in_set函数的基本使用方法
前言 这是我最近新接触到的一个函数, 我在项目中的使用场景是这样的: 有一个应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,parentIds由多个父级id拼接而成由","分隔. 组长告知我可以使用该函数,就去进行了了解与使用. 语法 FIND_IN_SET(str,strlist) 定义 假如字符串str在由多个子链组成的字符串列表strlist中,则返回值的范围在1到N之间. 一个字符串列表就是一个由
-
navicat不能创建函数解决方法分享
第一次写MySQL FUNCTION,一直报错, Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`company_id` int) RETURNS varchar(20) CHARSET utf8 BEGIN 本来的函数: CREATE DEFINER
-
mysql中find_in_set()函数的使用及in()用法详解
MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以","分隔 如 (1,2,6,8,10,22) 查询字段(strlist)中包含(str)的结果,返回结果为null或记录 假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间. 一个字符串列表就是一个由一些被 ',' 符号分开的子链组成的字符串.如果第一个参数是一个常数字符串,而第
-
mysql中find_in_set()函数的使用详解
首先举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文等等 . 现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那我们如何用sql查找所有type中有4的图文类型的文章呢?? 这就要我们的 find_in_set 出马的时候到了.以下为引用的内容: select * from article where FIND_IN_SET('4',type) --------------------------------
-
replace MYSQL字符替换函数sql语句分享(正则判断)
复制代码 代码如下: Update dede_addonsoft SET dxylink=REPLACE(dxylink, '.zip', '.rar') where aid > 45553; 复制代码 代码如下: update `table_name` set field = replace(field,'.rar','.7z'); table_name:要查询的表名, field:表里的字段名, replace(field,'.rar','.7z'); :正则匹配,把field字段里的 .r
-
Mysql的GROUP_CONCAT()函数使用方法
语法: GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr}[ASC | DESC] [,col_name ...]][SEPARATOR str_val]) 下面演示一下这个函数,先建立一个学生选课表student_courses,并填充一些测试数据. SQL代码 复制代码 代码如下: CREATE TABLE student_courses ( stude
-
快速增加MYSQL数据库连接数负载能力的方法分享
第一先限制Innodb的并发处理.如果innodb_thread_concurrency = 0 可以先改成 16或是64 看机器压力,如果非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务.处理方法: set global innodb_thread_concurrency=16; 方法一: (window系统中可直接修改my.ini文件) 进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_
-
还原大备份mysql文件失败的解决方法分享
用下面方法解决(管理mysql用的是navicat).,设置以下几个参数的值后就正常了,以下语句也可以在mysql的控制台上执行 . 复制代码 代码如下: show variables like '%timeout%'; show variables like '%packet%'; set global max_allowed_packet=99328000; set global wait_timeout=2880000; set global interactive_timeout=288
随机推荐
- DOS批处理中%cd%与%~dp0的区别详解
- jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
- JavaScript Math.floor方法(对数值向下取整)
- 编写Js代码要注意的几条规则
- 访问 IIS 元数据库失败解决问题的方法
- 批处理删除自身的命令小结
- mybatis如何使用Java8的日期LocalDate和LocalDateTime详解
- 详解Objective-C设计模式编程中对备忘录模式的运用
- python 函数传参之传值还是传引用的分析
- 一些Python中的二维数组的操作方法
- mysql中迅速插入百万条测试数据的方法
- PHP IDE phpstorm 常用快捷键
- python中执行shell的两种方法总结
- jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
- Android应用 坐标系详细介绍
- js限制文本框的输入内容代码分享(3类)
- C#判断程序是否是管理员权限运行的方法代码示例
- C语言中进制知识汇总
- ASP远程保存图片
- 易语言到文本命令将其它数据类型转换为文本型