有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被‘,’分开,现在要取出具有某权限的所有成员列表。
创建表:
1 CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),name VARCHAR(20) NOT NULL,limits VARCHAR(50) NOT NULL);
添加数据:
1 INSERT INTO users(name, limits) VALUES('小张','1,2,12');
2 INSERT INTO users(name, limits) VALUES('小王','11,22,32');
Mysql 中有些字段是字符串类型的,如何查找其中包含某些字符的记录呢?
方法一:
1 mysql> SELECT * FROM users WHERE limits like "%2%";
2 +----+----+--------+
3 | id |name| limits |
4 +----+----+--------+
5 | 1 |小张| 1,2,12 |
6 +----+----+--------+
7 | 2 |小王|11,22,32|
8 +----+----+--------+
9 2 row in set
这样第二条数据不具有权限‘2’的用户也查出来了,不符合预期。所以就查阅了手册,利用mysql 字符串函数 find_in_set()。
方法二:
1 mysql> SELECT * FROM users WHERE find_in_set('2', limits);
2 +----+----+--------+
3 | id |name| limits |
4 +----+----+--------+
5 | 1 |小张| 1,2,12 |
6 +----+----+--------+
7 1 row in set
这样就能达到我们预期的效果,问题就解决了!
注意:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。
在hql中是不能直接使用的,不过我们可以这样用:
from User u where find_in_set('2', limits)>0 ;
即‘>0’必须带上,否则会报错。
Mysql hql字符串字段中是否包含某个字符串,用 find_in_set的更多相关文章
-
Mysql字符串字段中是否包含某个字符串,用 find_in_set
有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被‘,’分开,现在要取出具有某权限的所有成员列表. 创建表: 1 CREATE TABLE ...
-
MYSQL查询某字段中以逗号分隔的字符串的方法
首先我们建立一张带有逗号分隔的字符串. CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCH ...
-
Mysql字符串字段判断是否包含某个字符串的方法
方法一:like SELECT * FROM 表名 WHERE 字段名 like "%字符%"; 方法二:find_in_set() 利用mysql 字符串函数 find_in_s ...
-
Mysql字符串字段判断是否包含某个字符串的3种方法
方法一: SELECT * FROM users WHERE emails like "%b@email.com%"; 方法二: 利用MySQL 字符串函数 find_in_set ...
-
(转)Mysql字符串字段判断是否包含某个字符串的3种方法
方法一: SELECT * FROM users WHERE emails like “%b@email.com%”; 方法二: 利用mysql 字符串函数 find_in_set(); SELECT ...
-
Mysql字符串字段判断是否包含某个字符串的3种方法[转载]
方法一: SELECT * FROM users WHERE emails like "%b@email.com%"; 方法二: 利用mysql字符串函数 find_in_set( ...
-
Mysql 模糊匹配(字符串str中是否包含子字符串substr)
1.LIKE 通常与 % 一同使用,类似于一个元字符的搜索.若substr不在str中,则返回0. 2.INSTR(str,substr) 返回字符串 str 中子字符串的第一次出现位置.若subst ...
-
sql判断以逗号分隔的字符串中是否包含某个字符串--------MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法
sql判断以逗号分隔的字符串中是否包含某个字符串---------------https://blog.csdn.net/wttykj/article/details/78520933 MYSQL中利 ...
-
MYSQL的分区字段,必须包含在主键字段内
MYSQL的分区字段,必须包含在主键字段内 MYSQL的分区字段,必须包含在主键字段内 在对表进行分区时,如果分区字段没有包含在主键字段内,如表A的主键为ID,分区字段为createtime ,按 ...
随机推荐
-
SSDB 主从配置
环境 Master/Slave 系统 IP SSDB版本 Master CentOS6.7 10.10.3.211 ssdb-1.8.0 Sla ...
-
C#调用C++ DLL 文件
说来惭愧,都注册一年多了,却没有发表过一篇正式的博文,中间很多学习的过程也没有记录下来.如今到了一个新的环境,也有了学习的机会,一定要把每天的收获记录一下. 要做的东西需要引用C++编写的DLL,刚开 ...
-
实践SQLServer Tuning
已有的系统业务数据属性多,表之间关系紧密.单表数据量(5481 row(s) affected)级别(其中三四个主表),其他表数据量较小. 0)使用set statistics生成辅助信息参考. se ...
-
使用Div+CSS布局设计网站的优点
网页设计业界越来越关注DIV+CSS的标准化设计,大到各大门户网站,小到不计其数的个人网站,在Div+CSS标准化的影响下,网页设计人员已经把这一要求作为行业标准.那么什么是Div+CSS标准?Div ...
-
原创-兼容IE8的placeholder
!function (o) { o.fn.extend({ PlaceHolder: function () { var _isEmpty = function (val) { return (val ...
-
Hdu1089
#include <stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF){ p ...
-
转发年浩大神的spfa算法
http://www.cnblogs.com/superxuezhazha/p/5426624.html #include<iostream> #include<stdio.h> ...
-
Swift ->; RunTime(动态性) 问题 浅析
Swift是苹果2014年发布的编程开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序.Swift已经开源,目前最新版本为2.2.我们知道Objec ...
-
02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
1 编写以下案例(下面的三个按钮都调用了底层的C语言): 项目案例的代码结构如下: 2 编写DataProvider的代码: package com.example.ndkpassdata; ...
-
Koa中设置中文Cookie值
默认情况下, 如果 ctx.cookies.set('user', '杨过', { domain: 'xxxx', path: 'xxxx', maxAge: 24 * 60 * 60 * 1000, ...