MYSQLSET类型字段的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

本文MYSQLSET类型字段的SQL操作知识介绍到此结束。不要像玻璃那样脆弱。有的人眼睛总盯着自我,所以长不高看不远;总是喜欢怨天尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水晶一样透明,太阳一样辉煌,腊梅一样坚强。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
深入理解mysqlSETNAMES和mysql(i)_set_charset的区别

centos7安装MySQL教程

国产达梦数据库常用SQL语句(上)

MySQL常用SQL查询语句(含复杂SQL查询)

MySQL细数发生索引失效的情况