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

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:MySQL 关于表复制 insert into 语法的详细介绍
web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码。下面我以mysql数据库为例分情况一一说明: 两张表:insertTe

本篇文章是对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' 


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

以下是添加标识

复制代码 代码如下:
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 

分享:总结MySQL建表、查询优化的一些实用小技巧
本篇文章是对MySQL建表以及查询优化的一些实用小技巧进行了详细的分析介绍,需要的朋友参考下 MySQL建表阶段是非常重要的一个环节,表结构的好坏、优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表、MySQL查询优化积累的一些实用小技巧。 技巧一、数

来源:模板无忧//所属分类:MySQL教程/更新时间:2013-07-03
相关MySQL教程