MYSQL SET类型字段的SQL操作知识介绍

本篇文章是对MYSQL中SET类型字段的SQL操作知识进行了详细的分析介绍,需要的朋友参考下
 
复制代码 代码如下:

<em>`mark` set('index','best','hot')</em> 

用的人少,懂的人也少,找了很久,总算凑齐了一套知识点
看上面的结构,MYSQL不傻,会存index吗,不会,存的是数字
SET字段是利用二进制数字来一一对应你设置的值,比如index,排在第0位,那么2的零次方等于1

复制代码 代码如下:

update from table SET mark=1 

 

复制代码 代码如下:

update from table SET mark='index' 

上面两个效果是一样的。
接着问题就来了,就像织梦那样,如果我想将一篇文章添加一个热门,但是不想删除其它标识在呢么办,或者我就想删除一个标识,我也不知道以前有什么标识。

以下是添加标识

复制代码 代码如下:

update from table SET mark=mark |1|2

不要问我为什么用|这个东东,上面的意思是添加index、best两个标识,如果只添加hot标识,写成|4就可以了

下面是删除标识

复制代码 代码如下:

update from table SET mark=mark &~4&~1 

好了,我先说了更新,下面说查询

复制代码 代码如下:

SELECT * FROM table WHERE FIND_IN_SET('hot',mark) 

这个是最简单的查询方法,也可以用hot所在位置的二进制数4来替代查询,效率是一样的
也可以这么写:

复制代码 代码如下:

SELECT * FROM table WHERE mark & 1 

时间: 2025-01-01 16:18:06

MYSQL SET类型字段的SQL操作知识介绍的相关文章

MYSQL SET类型字段的SQL操作知识介绍_Mysql

复制代码 代码如下: <em>`mark` set('index','best','hot')</em>  用的人少,懂的人也少,找了很久,总算凑齐了一套知识点看上面的结构,MYSQL不傻,会存index吗,不会,存的是数字SET字段是利用二进制数字来一一对应你设置的值,比如index,排在第0位,那么2的零次方等于1 复制代码 代码如下: update from table SET mark=1  复制代码 代码如下: update from table SET mark='in

SQL Server 中BIT类型字段增删查改那点事

原文:SQL Server 中BIT类型字段增删查改那点事 话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2 当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了. 废话不多,直接上代码看结果就好了. 先建一个测试表 CREATE TABLE TestBIT ( Id INT IDENTITY(1,1), BitCol

关于SQL Server中bit类型字段增删查改的一些事

前言 本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2 当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了. 废话不多,直接上代码看结果就好了. 先建一个测试表 CREATE TABLE TestBIT ( Id INT IDENTITY(

mysql alter修改字段的长度 类型sql语句

mysql 修改字段长度 alter table news  modify column title varchar(130); alter table 表名 modify column 字段名 类型; 如:news 表里的title  字段 原来长度是 100个字符,现长度要改成130个字符 alter table news modify column title varchar(130); 修改字段类型 数据库中address表 city字段是varchar(30) 修改类型可以用(谨慎修改

mysql-POCO C++库操作MySQL的Blob字段,SELECT * 就崩溃了,求破。

问题描述 POCO C++库操作MySQL的Blob字段,SELECT * 就崩溃了,求破. 表里有一个Blob字段,主要用来插入5MB以下的图片,SQL语句是这样的: SELECT * FROM message WHERE id="uuid": 如果不存在就直接INSERT,否则就UPDATE. 使用POCO C++库执行时,当执行 statement.execute()方法就崩溃了,并且try{}catch(...)都无法捕获到,直接挂了. 多数情况下是工作正常的,一般执行上次左右

mysql 增加修改字段类型及删除字段类型_Mysql

MySQL添加字段: alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加) 删除字段: alter table `user_movement_log` drop column Gatewayid 调整字段顺序: ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int

SQL查询语句中的bool类型字段值的写法

  SQL查询语句中的bool类型字段值的写法 没有系统地看过SQL语句的写法说明,只是看了一些常用SQL语句的例子.今天写了条select * from table where sex='true',老是提示标准数据类型不匹配(我用的Access),检查了半天,原来sex字段作为bool(是/否)类型,在SQL语句中其值不需要用''引起来.

MySql获取某个字段存在于哪个表的sql语句

本文为大家详细介绍下通过MySql查询某个字段所在表是哪一个,具体的sql语句如下,感兴趣的朋友可以参考下,希望对大家有所帮助   复制代码 代码如下: SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`COLUMNS` WHERE COLUMN_NAME = 'col1' col1为子段名.

PHP+Mysql实现多关键字与多字段生成SQL语句的函数_php技巧

本文实例讲述了PHP+Mysql实现多关键字与多字段生成SQL语句的函数的方法.分享给大家供大家参考.具体实现方法如下: 先看实例: 复制代码 代码如下: $keyword="1 2 3"; echo $sql=search($keyword,"enter_gongyin_pic","a+b+c"); //函数生成,没有LIMIT,没有ORDER BY 生成: 复制代码 代码如下: SELECT * FROM `enter_gongyin_pic