首页 > 数据库 >mysql 多值检索 find_in_set()函数

mysql 多值检索 find_in_set()函数

时间:2023-06-06 19:34:17浏览次数:40  
标签:aa insert set values fid mysql type find 检索


问题描述:

有一个字段type类型,存储的值为:1,2,3,4,等这样的,要检索出里面全部含有某一个类型的值,列如3

想要的结果如下:如何实现。。下面是具体的示例:

+-----+-----------+
| fid | type      |
+-----+-----------+
|   1 | 1,2,3,4,5 |
|   4 | 2,3,4,5   |
+-----+-----------+
2 rows in set (0.00 sec)




FIND_IN_SET语法:

FIND_IN_SET(str,strlist)函数

str 要查询的字符串

strlist 字段名 参数以”,”分隔 如 (1,2,6,8)

查询字段(strlist)中包含(str)的结果,返回结果为null或记录

下面举例说明




数据准备:

CREATE TABLE `aa` (
  `fid` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `type` varchar(50) NOT NULL DEFAULT '0' COMMENT '类型:1动作,2喜剧,3爱情4,科幻,5恐怖,6剧情,7战争,8记录片,9微电影,10奇幻,11动画电影,12惊悚,13其他片,21大陆剧,22港台剧,23日韩剧,24欧美剧,25新马泰,14动漫,15综艺,16武侠,17古装',
  PRIMARY KEY (`fid`)
)
insert aa(type) values('1,2,3,4,5');
insert aa(type) values('1,1,3,4,5');
insert aa(type) values('1,1,3,4,5');
insert aa(type) values('2,3,4,5');
insert aa(type) values('3');
insert aa(type) values('5');
insert aa(type) values('4');


检索sql:

select * from aa where FIND_IN_SET('2',type);

执行结果:

mysql 多值检索 find_in_set()函数_主键

注意,如果存成非逗号(,)分隔的,则检索不出来,如下:

mysql 多值检索 find_in_set()函数_字符串_02

总结:多值类型的必须以逗号分隔.


标签:aa,insert,set,values,fid,mysql,type,find,检索
From: https://blog.51cto.com/u_16152230/6427051

相关文章

  • MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=D
    hive删除表时报错如下:hive>droptableaaa;FAILED:ExecutionError,returncode1fromorg.apache.hadoop.hive.ql.exec.DDLTask.MetaException(message:javax.jdo.JDODataStoreException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyou......
  • Online DDL in MySQL 5.6
    OnlineDDLinMySQL5.6转载一篇姜老师的:在线DDL操作(OnlineDDL)是MySQL5.6中最为另人激动的改进功能。从历史上看,若我没记错MySQL在2007年就完成了在线索引接口的设计。而MySQLNDBCluster、TokuDB都早在5.1版本中就支持在线索引添加,然而直到MySQL5.6用户才能享受到该功能(虽......
  • 1_Setting Up an Ubuntu 20.04 server for deployment
     原文:https://www.codewithharry.com/blogpost/setup-ubuntu-20-04-server/  SettingUpanUbuntu20.04serverfordeploymentWhenyoufirstcreateaserverfromanyproviderlikeLinode,DigitalOcean,etc.,youwillhavetosecureitbyexecutingseveral......
  • MYSQL联合查询
       ......
  • MYSQL查询
         子查询   分页查询 ......
  • MYSQL分页查询
          ......
  • mysql数据库的锁-select for update
    乐观锁与悲观锁乐观锁和悲观锁只是两个加锁的思路,其实现方式多种多样。以下举几个在mysql数据库中的例子。  对于一次的数据修改,我们可以大概将其分为三步:获取数据修改数据提交修改乐观锁假设A、B两个角色对数据进行修改:乐观锁对数据保持一个乐观态度(大概率......
  • Mysql Workbench的CSV数据导入
    首先新建一个数据库和要从.csv导入数据的表,注意数据格式的选取。然后将csv文件用NOTEPAD++打开,将文件格式转换为UTF8.转化完成即可关闭。在MysqlWorkbench中想要导入数据的表,右键选取TableDataImportWizard进入数据导入向导,在文件路径中找到csv文件,下一步。选择Useex......
  • Postgresql,MySQL, SQL Server 的多表连接(join)update 操作
    数据库更新时经常会join其他表做判断更新,PostgreSQL的写法与其他关系型数据库更有不同,下面以SQLServer,MySQL,PostgreSQL的数据库做对比和展示。先造数据源。createtableA(idint,cityvarchar(20));createtableB(idint,namevarchar(20));insertintoAvalues(1......
  • mysql的ROUND、TRUNCATE函数
    在MySQL中,可以使用ROUND函数对数字进行四舍五入并保留指定位数的小数,语法如下:ROUND(number,decimals)其中,number参数表示要进行四舍五入的数字,decimals参数表示要保留的小数位数。例如,要对数字3.1415926进行四舍五入并保留两位小数,可以使用以下SQL语句:SELECTROUND(3.141592......