一个字段多个值的数据库设计问题 现在有字段A。取值是单个的,比如取值是3有一个字段,取值是多个的。比如字段B,取值可能是1、2、3、4现在要查出所有含有字段A的值的记录。比如:记录1:3、5、7(符合)记录2:6、8、9(不符合)请问如何设计数据库比较合理?充分考虑到性能优化。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我好像想到方法了。在数据库里面是这样保存B字段的数据的|2|4|6|3|如果我要查询是否含有3.就 like %|3|%。这样可行吗? 如果值域不超过64,那么可直接使用 set 类型如果不想用 set 类型,值域也肯能远超过 64那么可以用 varchar 或 text 类型数据由以逗号分隔的串组成,比如 2,4,6,3mysql 提供了 find_in_set 函数,用来完成查找工作 受教了。第一次懂得mysql字段还有set类型的。mysql还有find_in_set函数两种方法都可以解决问题。有空我亲自测试一下哪个方法速度最快! like 和 find_in_set 还有 in都是在求“是否在其中”,性能肯定不会高到哪里去把数据打包在一起,本身就是以时间换空间的做法要想达到高速的目的,当然就不能打包在一起,而是独立存放并加上索引,当然还要加上宿主的id这就是所谓的以空间换时间 求助,cookie跨域失败 新手 数据插入的问题 如何从数据库中提取该会员的其他信息 并自动显示在文本框中 数组排序问题 公司显示器换成液晶的了,感觉还是原来的好,清晰 听说最新的vbb采用了xml输出来大幅度提高了效率? 高分求助,关于Apache服务经常停止的问题!!! $_SERVER['HTTP_RAW_POST_DATA']是个什么变量? plz help 大家有谁接触过eBay的吗?如何把订单从eBay下载到本地? 新手求助 cookie登陆问题 freebsd php5.3 pdo_odbc 查询 sql server varchar类型 text类型不显示
在数据库里面是这样保存B字段的数据的
|2|4|6|3|
如果我要查询是否含有3.就 like %|3|%。这样可行吗?
如果不想用 set 类型,值域也肯能远超过 64
那么可以用 varchar 或 text 类型
数据由以逗号分隔的串组成,比如 2,4,6,3
mysql 提供了 find_in_set 函数,用来完成查找工作
受教了。第一次懂得mysql字段还有set类型的。mysql还有find_in_set函数
两种方法都可以解决问题。有空我亲自测试一下哪个方法速度最快!
都是在求“是否在其中”,性能肯定不会高到哪里去
把数据打包在一起,本身就是以时间换空间的做法要想达到高速的目的,当然就不能打包在一起,而是独立存放并加上索引,当然还要加上宿主的id
这就是所谓的以空间换时间