MYSQL SET类型字段的SQL操作知识介绍_MySQL
程序员文章站
2022-06-17 22:06:38
...
bitsCN.com
`mark` set('index','best','hot')
用的人少,懂的人也少,找了很久,总算凑齐了一套知识点
看上面的结构,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
bitsCN.com
`mark` set('index','best','hot')
用的人少,懂的人也少,找了很久,总算凑齐了一套知识点
看上面的结构,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
bitsCN.com
下一篇: 如何让文件流的变量运行?
推荐阅读
-
mysql数据库表的创建以及字段的增删改查操作及一些常用的查询命令介绍
-
TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用
-
MYSQL SET类型字段的SQL操作知识介绍_MySQL
-
MYSQL SET类型字段的SQL操作知识介绍_MySQL
-
以数据库字段分组显示数据的sql语句(详细介绍)_MySQL
-
关于mysql set字段类型的模糊查询有关问题
-
MySQL学习笔记_关于MySQL的整数类型字段长度知识总结_MySQL
-
mysql数据库表的创建以及字段的增删改查操作及一些常用的查询命令介绍
-
关于mysql set字段类型的模糊查询有关问题
-
MYSQL SET类型字段的SQL操作知识介绍