//创建文章表
CREATE TABLE article(
id INT PRIMARY KEY AUTO_INCREMENT,
flag SET('推荐','热门', '置顶', '图文') DEFAULT NULL
)ENGINE = INNODB CHARSET utf8 COMMENT='文章表';
INSERT INTO article(flag)
VALUES('图文,推荐,置顶'),
('置顶'),
('推荐,置顶'),
('热门,推荐');
1.使用FIND_IN_SET(str,strlist)查询
SELECT * FROM article WHERE FIND_IN_SET('推荐',flag) AND FIND_IN_SET('置顶',flag);
2.使用二进制位查询,&位运算符和,~非
对应下标为1的十进制转换为二进制,即二进制是00000001,也可以写成0001
SELECT * FROM article WHERE flag = flag&~00000001;