MySQL SET类型字段的SQL操作知识

php中文网
发布: 2016-06-07 17:24:20
原创
1298人浏览过

`mark` set(

`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

怪兽AI知识库
怪兽AI知识库

企业知识库大模型 + 智能的AI问答机器人

怪兽AI知识库 51
查看详情 怪兽AI知识库

不要问我为什么用|这个东东,上面的意思是添加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

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号