mysql set类型 查询,MYSQL SET字段类型怎么查询

昨天自己在写一个dedecms功能时突然用到了解dedecms中flag字段,但里面用的是set类型,开始直接查询where = xx 可查出单字符,但是多个是就不好查了,下面我来总结一下set字段查询方法吧。

SET可以包含最多64个成员,其值为一个整数。(SET类型基础请查阅 mysql数据类型之set类型 )这个整数的二进制码表示该SET的值的哪些成员为真。例如有`Status` set

代码如下

复制代码

('ForSale','AuthSuccess','AuditSuccess','IntentionReached','SaleCanceled'),那么它们的值为:

SET member Decimal value Binary value

-----------------------------

ForSale        1       0001

AuthSuccess     2       0010

AuditSuccess    4       0100

IntentionReached  8       1000

如果将9存入Status字段,那么其二进制值为1001,也就是说这个值中'ForSale'和'IntentionReached'为真。

可以想到,如果这样的话,大家可以用LIKE命令和 FIND_IN_SET() 函数来检索SET值:

代码如下

复制代码

SELECT * FROM tbl_name WHERE Status LIKE '%value%';

SELECT * FROM tbl_name WHERE FIND_IN_SET('value',Status)>0;

当然,以下SQL语句也是合法的,他们显得更加简洁(注意两个成员的顺序及连接符,):

代码如下

复制代码

SELECT * FROM tbl_name WHERE Status = 'ForSale,IntentionReached';同时我们还可以直接使用数值来查询:

SELECT * FROM tbl_name WHERE Status = 9

因为SET类型的成员的位置都是固定的,数值9永远表示'ForSale'和'IntentionReached'为真;这样即使以后再添加了一个状态,也不会影响之前的查询逻辑。我们再来看看修改SET类型字段的SQL语句使用技巧:

修改Status让其'ForSale'成员为真

代码如下

复制代码

UPDATE tbl_name SET Status = 1 WHERE Id = 333

修改Status让其'ForSale'、'AuthSuccess'、'IntentionReached' 成员为真

代码如下

复制代码

UPDATE tbl_name SET Status = 1 | 2 | 4 WHERE Id = 333;

在确认目前状态为7时去掉'ForSale'成员,让7也作为操作的条件是确保目前状态就是为7,如果没有此需求可直接 SET

代码如下

复制代码

Status = 6 ;

UPDATE tbl_name SET Status = 7 & ~1 WHERE Id = 333;

呵呵,利用SET类型保存权限等数据确实让开发方便清晰了不少哇。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个关于Remoting的简单例子

前言 今天在整理以前写的一些demo,看到一个关于remoting的例子。好久不用remoting了,果断记录一下。 什么是Remoting 简单回顾下: 1.Remoting是一种远程通信,或者说跨应用程序(域)通信的技术,在C/S架构的程…

php mqtt qos,Mqtt Qos 深度解读

1.QoS含义 :Quality of Service,服务质量2.作用域发布者的Qos订阅者的Qos3.等级与作用level 0:最多一次的传输level 1:至少一次的传输,(鸡肋)level 2: 只有一次的传输4.交互过程qos0对于qos1而言,对于clien…

LeetCode 1502. 判断能否形成等差数列

文章目录1. 题目2. 解题1. 题目 给你一个数字数组 arr 。 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。 …

关键字搜索.sql

if exists (select * from dbo.sysobjects where id object_id(N[dbo].[f_search]) and xtype in (NFN, NIF, NTF))drop function [dbo].[f_search]GO if exists (select * from dbo.sysobjects where id object_id(N[序数表]) and OBJECTPROPERTY(id, NIsUserTable) 1)drop…

matlab2017调用vgg19,VGG19模型训练+读取

VGG-19的介绍和训练这里不做说明,网上资源很多,而且相对比较简单.本博文主要介绍VGG-19模型调用官方已经训练好的模型,进行测试使用.[TOC]VGG-19模型简单介绍VGG模型使用VGG结构模型VGG具体参数模型VGG-19模型文件介绍这里是重难点,VGG-19模型存储的方式有点复杂可以通过作者文…

LeetCode 1504. 统计全 1 子矩形(记录左侧的连续1的个数)

文章目录1. 题目2. 解题1. 题目 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat , 请你返回有多少个 子矩形 的元素全部都是 1 。 示例 1: 输入:mat [[1,0,1],[1,1,0],[1,1,0]] 输出:13 解释: 有 6 个 1x1 的矩…

iverilog命令选项解释

随着数字系统设计规模的增大,verilog文件几乎都会分成几个文件模块来管理,就如一个大工程一样,并且相互之间都会有调用关系,典型的就是,有一个文件要调用其他的文件实例,但是本身却不被任何模块所调用&…

matlab中ode23s使用方法,MATLAB中ode23函数,龙格库塔函数

今天说一说MATLAB中ode23函数的原理,在网上看了好多,但是不知道是怎么计算的,就知道是那么用的,但是最后结果咋回事不知道,今天来讲一讲是怎么计算的。首先来个程序:function feg6fun(t,y)f-y^3-2;end上面是…

勘误和声明

背景: 昨天在博客园浏览别人的文章《C# 不要自动四舍五入!》(地址:http://www.cnblogs.com/eweb/archive/2012/05/18/2507468.html)时,发现了自己之前的文章《C#,double和decimal数据类型以截断的方式保留指…

LeetCode 1503. 所有蚂蚁掉下来前的最后一刻(脑筋急转弯)

文章目录1. 题目2. 解题1. 题目 有一块木板,长度为 n 个 单位 。一些蚂蚁在木板上移动,每只蚂蚁都以 每秒一个单位 的速度移动。其中,一部分蚂蚁向 左 移动,其他蚂蚁向 右 移动。 当两只向 不同 方向移动的蚂蚁在某个点相遇时&a…

matlab多元线性回归bint,MATLAB中多元线性回归的例子课件

《MATLAB中多元线性回归的例子课件》由会员分享,可在线阅读,更多相关《MATLAB中多元线性回归的例子课件(12页珍藏版)》请在人人文库网上搜索。1、MATLAB中多元线性回归的例子,2.线性回归,bregress(y,X) b,bint,r,rint,sregress(y,X,alpha),输入: y因变量…

LeetCode 1246. 删除回文子数组(区间DP)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 arr&#xff0c;每一次操作你都可以选择并删除它的一个 回文 子数组 arr[i], arr[i1], ..., arr[j]&#xff08; i < j&#xff09;。 注意&#xff0c;每当你删除掉一个子数组&#xff0c;右侧元素都会自行向前移动填补空…

开始学习ZendFramework框架了

开始学习ZendFramework框架了 开始学习ZendFramework框架了&#xff01;#&#xffe5;%……&&#xff08;加油&#xff01;&#xff01;&#xff01;posted on 2012-05-21 19:51 free-acking 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/acking/archive…

lamp ci框架 php配置文件,LAMP环境搭建

一、准备工作1、安装编译工具gcc、gcc-c注意解决依赖关系&#xff0c;推荐使用yum安装&#xff0c;若不能联网可使用安装光盘做为yum源——1)编辑yum配置文件&#xff1a;mount /dev/sr0 /mnt/cdromvim /etc/yum.repos.d/CentOS-Media.repo[c6-media]nameCentOS-$releasever - …

LeetCode 573. 松鼠模拟(数学)*

文章目录1. 题目2. 解题1. 题目 现在有一棵树&#xff0c;一只松鼠和一些坚果。位置由二维网格的单元格表示。 你的目标是找到松鼠收集所有坚果的最小路程&#xff0c;且坚果是一颗接一颗地被放在树下。 松鼠一次最多只能携带一颗坚果&#xff0c;松鼠可以向上&#xff0c;向下…

MySQL索引背后的数据结构及算法原理(转)

摘要 本文以MySQL数据库为研究对象&#xff0c;讨论与数据库索引相关的一些话题。特别需要说明的是&#xff0c;MySQL支持诸多存储引擎&#xff0c;而各种存储引擎对索引的支持也各不相同&#xff0c;因此MySQL数据库支持多种索引类型&#xff0c;如BTree索引&#xff0c;哈希索…

LeetCode 1273. 删除树节点(拓扑排序/DFS)

文章目录1. 题目2. 解题2.1 取巧解2.2 拓扑排序2.3 建图DFS1. 题目 给你一棵以节点 0 为根节点的树&#xff0c;定义如下&#xff1a; 节点的总数为 nodes 个&#xff1b; 第 i 个节点的值为 value[i] &#xff1b; 第 i 个节点的父节点是 parent[i] 。 请你删除节点值之和为…

查php源码授权后门,PHP授权系统+支持盗版入库+一键黑页后门注入+卡密授权

PHP授权系统支持盗版入库一键黑页后门注入卡密授权p stylewhite-space normal;PHP授权系统支持盗版入库一键黑页后门注入卡密授权/pp stylewhite-space normal;span stylecolor rgb255, 0, 0;升级会员可免积分下载本站99资源。/span/pp stylewhite-space normal;【最新修复版】…

WinForm邮件内容编辑器的简单实现

1、概述 在WinForm开发中&#xff0c;您可能会碰到发送邮件时内容编辑的问题&#xff0c;大部分开发人员第一个想法是希望将 WinForm中的内容编辑器做到和.NET 中类似FCK一样。今天我们就来介绍下如何实现和FCK一样的内容编辑器功能。 2、正文 邮件内容编辑器的问题,在…

上位机软件控制下位机PHP,采用stm32f103CB硬件I2C1/2(自制硬件)中断/DMA访问,四轴开源程序,DMP,PCB外框图纸库文件,USBToVCOM代码下位机...

四轴的ROLL&#xff0c;PITCH&#xff0c;YAW的部分算法程序&#xff1b;//二阶毕卡法void IMUupdate(float* Roll, float* Pitch, float* Yaw,float gx, float gy, float gz,float ax, float ay, float az, float* fusionDt){#ifdef IMUMpu_Setfloat delta_20;// float gx, gy…