我的一相类似的问题是这样搞的,希望对你有帮助
就是:
hobbyid 是varchar型的
他的爱好内容为:1,2,4,......
既喜欢打篮球,又喜欢打排球的人是:
select * from guesthobby where hobbyid like '%1%' and hobbid like '%2%'
select * from guesthobby where hobbyid like '%1%' or hobbid like '%2%' 是或者的关系,既喜欢打篮球或者喜欢打排球的人出来了
查询效率如何没去研究,所用的数据库为PostgreSQL或MS SQL Server ,不是MySQL
就是:
hobbyid 是varchar型的
他的爱好内容为:1,2,4,......
既喜欢打篮球,又喜欢打排球的人是:
select * from guesthobby where hobbyid like '%1%' and hobbid like '%2%'
select * from guesthobby where hobbyid like '%1%' or hobbid like '%2%' 是或者的关系,既喜欢打篮球或者喜欢打排球的人出来了
查询效率如何没去研究,所用的数据库为PostgreSQL或MS SQL Server ,不是MySQL
效率很高,一个 SET 最大可以有 64 个不同的成员。 从 3.23.51 开始,当表被创建时,SET 值尾部的空格将被自动地删除。 MySQL 以数字值存储 SET 值,以被存储值的低阶比特位(bit)对应于第一个集合成员。如果在一个数字语境中检索一个 SET 值,检索的值把比特位设置为对应组成列值的集合成员。例如,你可以使用下面所示的示例从一个 SET 列中检索出一个数字: mysql> SELECT set_col+0 FROM tbl_name;如果将一个数字存储到一个 SET 列中,被设置的数字的二进制表示法的比特位决定列值中的集合成员。假设一个列被定义为 SET("a","b","c","d")。那么它的成员有下面所示的比特值: SET 成员 十进制值 二进制值
a 1 0001
b 2 0010
c 4 0100
d 8 1000 如果将值 9(二进制的 1001) 赋给这个列,那么 SET 值的第一个和第四个成员 "a" 和 "d" 被选择,结果值为 "a,d"。
2、SELECT set_col+0 FROM tbl_name;这句话是什么意思啊?column+0是什么意思?
3、对于set类型的表,插入数据的时候应该怎么插入??