下面两个函数的使用和FIND_IN_SET一样,使用时只需要把FIND_IN_SET换成FIND_PART_IN_SET或FIND_ALL_PART_IN_SET

例如某字段里是为1,2,3,4,5

使用方法:

第一种,传入1,3,6  可以查出来

select * from XXX where FIND_PART_IN_SET('1,3,6','1,2,3,4,5')

第二种,传入1,3,6  查不出来

select * from XXX where FIND_ALL_PART_IN_SET('1,3,6','1,2,3,4,5')

函数:

第一种:只要包含其中一个就可以被查出来

CREATE DEFINER = `root`@`%` FUNCTION `NewProc`(str1 text,str2 text)

RETURNS text

BEGIN

#传入两个逗号分割的字符串,判断第二个字符串是否包含第一个字符串split之后的单个

DECLARE CURRENTINDEX INT;#当前下标

DECLARE CURRENTSTR text;

DECLARE result int;

set result = 0;

set CURRENTINDEX = 0;

set CURRENTSTR = '';

IF str1 IS NOT NULL AND str1 != '' THEN

SET CURRENTINDEX = LOCATE(',',str1);

WHILE CURRENTINDEX > 0 DO

SET CURRENTSTR = substring(str1,1,CURRENTINDEX-1);

if FIND_IN_SET(CURRENTSTR,str2) THEN

set result = 1;

end if;

SET str1 = substring(str1,CURRENTINDEX+1);

SET CURRENTINDEX = LOCATE(',',str1);

END WHILE;

#只传一个 和 最后无逗号的情况

IF LENGTH(str1) > 0 THEN

if FIND_IN_SET(str1,str2) THEN

set result = 1;

end if;

END IF;

END IF;

RETURN result;

END;

第二种:必须全部包含才可以被查出来

CREATE DEFINER = `root`@`%` FUNCTION `NewProc`(str1 text,str2 text)

RETURNS text

BEGIN

#传入两个逗号分割的字符串,判断第二个字符串是否全部包含第一个字符串split之后的单个

DECLARE CURRENTINDEX INT;#当前下标

DECLARE CURRENTSTR text;

DECLARE RESULT int;

DECLARE TOTALCOUNT int;

DECLARE TRUECOUNT int;

set RESULT = 0;

set CURRENTINDEX = 0;

set CURRENTSTR = '';

set TOTALCOUNT = 0;

set TRUECOUNT = 0;

IF str1 IS NOT NULL AND str1 != '' THEN

SET CURRENTINDEX = LOCATE(',',str1);

WHILE CURRENTINDEX > 0 DO

SET TOTALCOUNT = TOTALCOUNT + 1;

SET CURRENTSTR = substring(str1,1,CURRENTINDEX-1);

if FIND_IN_SET(CURRENTSTR,str2) THEN

SET TRUECOUNT = TRUECOUNT + 1;

end if;

SET str1 = substring(str1,CURRENTINDEX+1);

SET CURRENTINDEX = LOCATE(',',str1);

END WHILE;

#只传一个 和 最后无逗号的情况

IF LENGTH(str1) > 0 THEN

SET TOTALCOUNT = TOTALCOUNT + 1;

if FIND_IN_SET(str1,str2) THEN

SET TRUECOUNT = TRUECOUNT + 1;

end if;

END IF;

END IF;

IF TOTALCOUNT > 0 AND TRUECOUNT = TOTALCOUNT THEN

SET RESULT = 1;

END IF;

RETURN result;

END;

总结

以上所述是小编给大家介绍的MySql逗号拼接字符串查询的两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

mysql按逗号拼接起来_MySql逗号拼接字符串查询的两种方法相关推荐

  1. mysql中逗号前的字符串_MySql逗号拼接字符串查询的两种方法

    下面两个函数的使用和FIND_IN_SET一样,使用时只需要把FIND_IN_SET换成FIND_PART_IN_SET或FIND_ALL_PART_IN_SET 例如某字段里是为1,2,3,4,5 ...

  2. mysql数据库运行远程用户访问不了_MySQL数据库远程访问权限如何打开(两种方法)...

    下载GPL版本安装 MySQL Community Edition(GPL) Community (GPL) Downloads » 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上 ...

  3. mysql 查询慢 分析_MySQL优化:定位慢查询的两种方法以及使用explain分析SQL

    一条SQL查询语句在经过MySQL查询优化器处理后会生成一个所谓的执行计划,这个执行计划展示了具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等. 本章的内容就 ...

  4. mysql 单实例设置密码_MySQL单实例重置密码的两种方法

    MySQL单实例重置密码的两种方法 在工作学习中,我们有时会忘记数据库的密码,下面是MySQL单实例密码重置的步骤. 说明: (1)[root@mysql1 ~]# cat /etc/redhat-r ...

  5. mysql数据没有同步更新_MySQL数据库主从没有同步的两种解决方案

    MySQL数据库主从没有同步的两种解决方案 发布时间:2020-05-13 13:54:57 来源:亿速云 阅读:190 作者:三月 栏目:数据库 下文主要给大家带来MySQL数据库主从没有同步的两种 ...

  6. mysql数据库包含_MySQL数据库判断字符串包含的三种方法

    方法一:SELECT * FROM users WHERE emails like "%b@email.com%"; 方法二: 利用 mysql 字符串函数 find_in_set ...

  7. 使用mysql创建外键约束_Mysql创建外键约束的两种方式

    通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题. 1.创建表时直接创建外键约束create table books( bookid number(10 ...

  8. mysql去重的最方便的两种方法_mysql去重的最方便的两种方法

    参考资料:http://blog.csdn.net/guocuifang655/article/details/3993612 方法一: 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然m ...

  9. mysql创建库几种方法_MySQL创建数据库的两种方法

    本文为大家分享了两种mysql创建数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 mysql 数据库. 所以 ...

  10. dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法

    本文主要向大家介绍了MySQL数据库之c#mysql批量更新的两种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 总体而言update 更新上传速度还是慢. 1:  简单的 ...

最新文章

  1. 怎么解决哈希冲突_从生日悖论谈哈希碰撞
  2. JAVA 将图片转换为Base64编码
  3. Math,random()返回区间内的随机数
  4. OpenSql的优化原则
  5. 用HttpURLConnection发送http请求
  6. 目标赋予生命的意义和目的
  7. Pytest框架教程(一)
  8. 熊猫烧香病毒-源码学习
  9. git 日常 常用命令
  10. 亚信安全认证acse_2019亚信安全合作伙伴大会闪耀京城
  11. java rtf读取,java读取rtf
  12. linux pulseaudio卸载,解决Ubuntu 9.04 下 PulseAudio声音故障
  13. win7系统计算机找不到u盘启动,联想f12后没有u盘启动怎么办_联想f12没有usb启动项如何解决-win7之家...
  14. 堆和栈内存扩展方向问题
  15. WordPress的.htaccess优化技巧是什么
  16. 关于Olly Dbg的使用报告
  17. 代码打字速度_使用VueJS创建打字速度效果
  18. 《程序是怎么跑起来的》第五章学习笔记
  19. 数据库系统概论实验二——创建及管理数据库
  20. linux结束驱动程序,在linux上安装FTDI设备驱动程序[关闭]

热门文章

  1. 发那科2021参数_FANUC系统常用参数汇总
  2. python qt5 安装
  3. 雷神台式计算机配置,雷神新用户手册:拿到新电脑时如何简易设置参数!
  4. 2021爱分析·快消品牌商数字化厂商全景报告
  5. 多张pdf怎么合成一张?pdf快速合并法
  6. Java反编译工具 luyten 0.5.3
  7. 中美线径对照表_中国线径与英美德线规对照表
  8. 【sql的四大连接】
  9. 全国大学生恩智浦杯智能汽车竞赛
  10. python实现sm3算法