& 与运算即可 select * from table1 +----+------+-------+ | id | name | class | +----+------+-------+ | 1 | aa | 12 | | 2 | bb | 21 | | 3 | cc | 3 | | 4 | dd | 9 | +----+------+-------+ 想查灾难片 则 class & 4 不为 0 select * from table1 where class&4 <>0; +----+------+-------+ | id | name | class | +----+------+-------+ | 1 | aa | 12 | | 2 | bb | 21 | +----+------+-------+ 想查3 爱情片 且 动作片 select * from table1 where class&3 =3; +----+------+-------+ | id | name | class | +----+------+-------+ | 3 | cc | 3 | +----+------+-------+ 想查3 爱情片 或 动作片 select * from table1 where class&3 <> 0; +----+------+-------+ | id | name | class | +----+------+-------+ | 2 | bb | 21 | | 3 | cc | 3 | | 4 | dd | 9 | +----+------+-------+
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
你的意思是要将class中的21分解成16+4+1? 21的组成数字有多少种? 这是算法问题了
参考wordpress的设计吧,建立标签,用标签关联,容易维护,查询负载小。
如果我搜索分类class标示爱情片的2 select * from table1 where find_in_set(2,replace(class,'+',",')); 如果我搜索分类class标示灾难片的4 select * from table1 where find_in_set(4,replace(class,'+',",'));
[quote=引用 20 楼 ACMAIN_CHM 的回复:] 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
参考下贴中的正则方法。 http://blog.csdn.net/acmain_chm/article/details/4141864 REGEXP 正则的实现两个字符串组的匹配。 最近MySQL版块中类似问题出现得比较多。总结了一下。 由于某些原因,有时候我们没有按照范式的设计准则而把一些属性放到同一个字符串字段中。比如个人兴趣,有时候我们设计表为create table members (uid int primary key,uname varchar(20),hobby varchar(100));表中内容如下mysql> select * from ...
表结构这样设计,如果数据量大的话,会有问题的 个人认为应该把这个类型字段拆成多个字段,例如 isLove(是否为爱情片), isAction(是否为动作片),等等
56,677
社区成员
56,708
社区内容
加载中
试试用AI创作助手写篇文章吧