首页 > 数据库 >MYSQL字符串中根据符号匹配固定字符

MYSQL字符串中根据符号匹配固定字符

时间:2024-10-23 10:21:24浏览次数:1  
标签:字符 SET users roles admin MYSQL 字符串 FIND

如果您有一个字段存储的是多个值,例如分号分隔的字符串,而您仍然需要进行精准匹配,可以使用 FIND_IN_SET 函数,但需要注意 FIND_IN_SET 是基于逗号分隔的字符串。如果您的字段是分号分隔的,可以先将其转换为逗号分隔的字符串。

假设 users 表的 roles 字段存储的是分号分隔的字符串

 

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255),
    roles VARCHAR(255)
);

INSERT INTO users (username, roles) VALUES ('user1', 'user;admin;moderator');
INSERT INTO users (username, roles) VALUES ('user2', 'user;moderator');
INSERT INTO users (username, roles) VALUES ('user3', 'admin;user');

  

查询示例

要检查 roles 字段中是否包含固定的字符串 "admin",可以使用以下查询:

SELECT *
FROM users
WHERE FIND_IN_SET('admin', REPLACE(roles, ';', ','));

  

执行上述查询将返回:

+----+----------+-----------------------+
| id | username | roles                 |
+----+----------+-----------------------+
|  1 | user1    | user;admin;moderator  |
|  3 | user3    | admin;user            |
+----+----------+-----------------------+

解释

  • REPLACE(roles, ';', ','):将分号 ; 替换为逗号 ,,以便 FIND_IN_SET 函数能够正确处理。
  • FIND_IN_SET('admin', ...):检查替换后的字符串中是否包含 "admin"

通过这种方式,您可以在MySQL中进行精准匹配,即使字段中存储的是分号分隔的字符串。

标签:字符,SET,users,roles,admin,MYSQL,字符串,FIND
From: https://www.cnblogs.com/kevinZhu/p/18494578

相关文章

  • Django+MySQL接口开发完全指南
    前言本文将详细介绍如何使用Django结合MySQL数据库开发RESTfulAPI接口。我们将从环境搭建开始,一步步实现一个完整的接口项目。环境准备首先需要安装以下组件:Python3.8+Django4.2MySQL8.0mysqlclientdjangorestframework安装命令#创建虚拟环境python-mvenvvenvs......
  • 字符串哈希 学习笔记
    两种哈希的表示方式。设\(s_i\)为字符串内第\(i\)位,\(h_i\)表示字符串内\([1,i]\)的哈希值,\(p\)为模数,那么第一种哈希方式是:\(h_i=h_{i-1}*p+s_i\),即把\(h_i\)当作一个\(p\)进制数,加入\(s_i\)时在数的末尾。\(h_i=h_{i-1}+s_i*p^{i-1}\),即是在开头加入\(s_i\)......
  • MySQL【知识改变命运】11
    联合查询6.⼦查询6.1语法6.2单⾏⼦查询6.3多⾏⼦查询6.4多列⼦查询6.5在from⼦句中使⽤⼦查询7.合并查询7.1创建新表并初始化数据7.2Union7.3Unionall8.插⼊查询结果8.1语法8.2⽰例6.⼦查询⼦查询是把⼀个SELECT语句的结果当做别⼀个SELECT语句的......
  • MySQL DQL 10.22
    --一基础查询--1查询多个字段--SELECT字段列表FROM表名 ;--SELECT*FROM表名;--查询所有数据--2去除重复记录--SELECTDISTINCT字段列表FROM表名;--3起别名--AS--AS也可以省略--selectname,sexas性别fromstu;--selectDISTINCTnamefromstu......
  • Mysql基础命令总结
    1.DDL1.1操作数据库和表DataDefinitionLanguage数据定义语言Create,Retrieve(查询),update,Delete1.1.1操作数据库显示所有数据库:showdatabases;显示创建得数据库:showcreatedatabase数据库名称;创建一个数据库:createdatabase数据库名称;创建数据库前先判断是......
  • MySQL学习笔记
    目录基础篇:通用语法:基础操作:DDL-数据库操作:基本指令:数据类型:数值类型:字符串类型:日期时间类型:表结构修改:DML-增、删、改操作:插入操作:修改、删除操作:DQL-查询操作:DQL-编写顺序:基础查询:条件查询:分组查询:聚合函数:语法:排序查询:分页查询:DQL-执行顺序:DCL-用户管理:DCL-权限控制:函数:字符串......
  • 如何实现聚水潭·奇门销售数据与MySQL的高效对接
    聚水潭·奇门数据集成到MySQL的技术案例分享在现代企业的数据管理中,如何高效、准确地实现不同系统之间的数据对接和集成是一个重要的课题。本文将聚焦于一个具体的系统对接案例:将聚水潭·奇门平台上的销售出库单数据集成到MySQL数据库中的BI智选-销售出库表。为了确保数据集成......
  • 【第四章·键盘输入和屏幕输出】第一节:单个字符的输入/输出
    目录4.1.1字符常量转义字符ASCII码Unicode字符集4.1.2字符的输入输出getchar()和putchar()案例演示:字母大小写转换章节内容导读:        键盘输入和屏幕输出是编写简单的顺序结构程序时最常用到的操作。C程序中的键盘输入和屏幕输出都是通过调用输入......
  • NOIP2024集训Day58 字符串
    NOIP2024集训Day58字符串C.[CEOI2011]Matching发现要做的是排名串的匹配。考虑把它转成这个位置之前有多少个数小于当前这个数,这样就只要每个位置都对应相等的,那就一定是合法的。然后就可以类似KMP的预处理出一个\(nxt\)数组,然后再类似KMP的匹配。因为需要支持动态......
  • Python——脚本实现datax全量同步mysql到hive
    文章目录前言一、展示脚本二、使用准备1、安装python环境2、安装EPEL3、安装脚本执行需要的第三方模块三、脚本使用方法1、配置脚本2、创建.py文件3、执行脚本4、测试生成json文件是否可用前言在我们构建离线数仓时或者迁移数据时,通常选用sqoop和datax等工具进行......