首页 > 数据库 >Mysql 逗号分隔的字段查询

Mysql 逗号分隔的字段查询

时间:2023-05-31 14:35:03浏览次数:38  
标签:set 分隔 mysql ids 逗号 Mysql hobby find select

二、find_in_set
为了解决like存在的问题,还可以使用mysql提供的find_in_set(str, strlist),sql可以这样写:

select * from user where find_in_set('1', hobby_ids);
这样mysql就会把hobby_ids的值,按照逗号分隔的一个个元素去匹配。如果我们要匹配多个值要怎么办呢,比如查找喜欢1-篮球或2-足球的用户,可以

select * from user where find_in_set('1', hobby_ids) or find_in_set('2', hobby_ids);
如果匹配的值较多,我们可能要拼很长的sql,那有没有稍微简短的方式呢,我们可以采用下面的方式。

三、regexp
regexp是mysql提供的强大的正则匹配方式。上面的sql就可以改写成:

select * from user where hobby_ids regexp '(^|,)(1|2)(,|$)';

标签:set,分隔,mysql,ids,逗号,Mysql,hobby,find,select
From: https://www.cnblogs.com/wjsqqj/p/17446003.html

相关文章

  • MySQL——json类型的应用
    在制作动态报表的时候,如果需要字段灵活配置,用json存储数据,可以让查询变得非常简单。 业务场景:绩效系统中,需要从10个系统中抓取不同数据,并且性能不会太高,但是用于计算的只有其中3个,用哪3个看领导心情,设计一张表存储抓取到的数据。1、傻瓜式做法,设计一张表,从字段1列到......
  • mysql数据库自动删除
    关于早上发现数据库丢失,留下了一份文档 检查了下发现是命令的问题 由于使用了这条命令,导致后门被开了,真是血泪的教训。修改远程登录权限的话还是使用updateuser表来修改。......
  • java同步mysql的数据到PostgreSQL时报错ERROR: invalid byte sequence for encoding "
    最近,同事在做一个功能,通过java程序将mysql中的一张表的数据同步到pgsql中,在同步过程中,插入到pgsql中出现了如下错误:`###Errorupdatingdatabase.Cause:org.postgresql.util.PSQLException:ERROR:invalidbytesequenceforencoding"UTF8":0x00在位置:unnamedportalpa......
  • 关于mysql 创建索引报错 1071 specified key was too long ;max key length is 3027
    另一种张表也是相同的字段创建索引却能成功,在网上查了一些资料。后来发现是两张表字段都用的varchar类型,不过能成功建索引的表设置的长度是50,而不能成功的表里设置的255,修改字符长度就能成功建索引了。关于varchar(50)和varchar(255)的区别:https://dba.stackexchange.com/questio......
  • 关于MySQL的一些优化(单表访问)
    以此表为例CREATETABLE`single_table`(`id`intNOTNULLAUTO_INCREMENT,`key1`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`key2`intNULLDEFAULTNULL,`key3`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb......
  • SQLite与MySQL与PostgreSQL:关系数据库的比较
    概述和功能SQLite是一个基于文件的嵌入式RDBMS,不需要任何安装或设置。反过来,这意味着应用程序不在需要启动,停止或配置的单独服务器进程下运行。这种无服务器架构使数据库能够跨平台兼容。完整的SQL数据库包含在单个磁盘文件中,所有读取和写入都直接在此磁盘文件上进行。由于数据直接......
  • MySQL数据库,货币格式化
    MySQL数据库,货币格式化如何将数字表示为美元格式例$10,000.00查询语句SELECTCONCAT('$',FORMAT(price*1000,2,','))ASPriceFROMitem;千位分隔FORMAT(number,decimal,places),即FORMAT(数字,保留位数,分隔符)添加美元符号$CONCAT(str1,str2,...),str1、s......
  • MySQL数据库,字符串字段拆分
    MySQL数据库,字符串字段拆分英文姓名存储在一个字段如何拆分出firstname和lastname查询语句SELECTREPLACE(name,CONCAT('',SUBSTRING_INDEX(name,'',-1)),'')ASfirstname,SUBSTRING_INDEX(name,'',-1)ASlastnameFROMpeople;SUBSTRING_INDE......
  • MySQL学习进阶篇Day5
    2.6.4索引失效情况2.6.4.1索引列运算不要在索引列上进行运算操作,索引将失效。 在tb_user表中,除了前面介绍的联合索引之外,还有一个索引,是phone字段的单列索引。 A.当根据phone字段进行等值匹配查询时,索引生效。explainselect*fromtb_userwherephone='1779......
  • mysql8和pgsql10你选哪个?
    手里有个云服务器1核1G,ubuntu20.04,经常用来测试一些开源应用。刚好有个应用需要数据库支持,或者mysql8,或者pgsql10。显然mysql用起来更得心应手,可是安装不上mysql8,显然内存不够,无奈只好试下pgsql,安装竟然非常顺畅。安装了pgsql12,目前占用内存也就130M左右起了一个应用,统计一下......