MySQL 模糊查询 最佳 索引

最近做一个项目,商品分类的属性,有30多个属性值,编辑的时候,是把所选属性的int值整合成一个字符串,写进数据库。。这样前台查询的时候,选择属性,和数据库的属性字符串进行匹配。。。

这应该是mysql常用而且比较恼火的问题,很久之前遇到过,因为相对查询不多,所以没有深入研究,最近这个项目这方面的搜索量非常大。。所以上来求大神赐教。。

网上多数人说用 match against全文索引方法,肯定比like查询快,但这种是不是效率最高的???

回复讨论(解决方案)

全文检索肯定比like查询快

但 mysql 的全文检索并不支持中文,需要安装第三方软件

你把 所选属性的int值整合成一个字符串 ,那么你是如何能查询的到的?

前台传入的属性选项整合成字符串,然后与数据表里的属性字符串进行匹配。。刚才想了下也不行,如果顺序不对,匹配就会失败。。。

全文检索肯定比like查询快

但 mysql 的全文检索并不支持中文,需要安装第三方软件

你把 所选属性的int值整合成一个字符串 ,那么你是如何能查询的到的?

属性筛选还有什么好的思路呢???

结合 find_in_set 和 substring_index 两个函数就可以了

当然属性串样组织成这样:

属性1,值1,属性2,值2,属性3,值3,属性4,值4,属性5,值5,…..

这2个函数的效率怎么样啊,除了这2个函数,额外还有其他5-8个查询条件。。上万条记录,cpu撑得住吗???

结合 find_in_set 和 substring_index 两个函数就可以了

当然属性串样组织成这样:

属性1,值1,属性2,值2,属性3,值3,属性4,值4,属性5,值5,…..

先不要奢谈效率,结果还没有出来呢,哪来的效率?

你先在 mysql 管理器中执行下面的查询,体会一下函数的用法

select substring_index(substring_index(n,',',find_in_set('属性2', n)),',',-1)from (select '属性1,值1,属性2,值2,属性3,值3,属性4,值4,属性5,值5' as n) t

分表….

其实象这种需求应考虑按位与方式写值,而不应合成字符串写入

1:属性1

2:属性2

4:属性3

8:属性4

……

属性1+属性3=>1+4=5 ,数据库写入整型值5

(5&1)== 1 –>包含属性1

数据库操作也差不多:where (options & 1)=1

其实象这种需求应考虑按位与方式写值,而不应合成字符串写入

1:属性1

2:属性2

4:属性3

8:属性4

……

属性1+属性3=>1+4=5 ,数据库写入整型值5

(5&1)== 1 –>包含属性1

数据库操作也差不多:where (options & 1)=1

不是很明白 能说的再详细点吗

能举个更详细的例子吗??类似排列组合的算法??

其实象这种需求应考虑按位与方式写值,而不应合成字符串写入

1:属性1

2:属性2

4:属性3

8:属性4

……

属性1+属性3=>1+4=5 ,数据库写入整型值5

(5&1)== 1 –>包含属性1

数据库操作也差不多:where (options & 1)=1

这个例子已经够详细了,楼主去多了解整数间的按位与运算,其实也就是二进制数的与运算

mysql使用什么替代like查询_mysql替代like模糊查询的最佳方法?????求赐教!!!!...相关推荐

  1. mysql 索引的模糊查询_MYSQL语法(模糊查询,视图,索引)

    MYSQL语法(模糊查询,视图,索引) 2020年08月11日 | 萬仟网IT编程 | 我要评论 MYSQL模糊查询模糊查询,查询name 以张开头的数据select *from t1 where n ...

  2. mysql 电话模糊查询_mysql中的模糊查询

    转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...

  3. MySQL全文索引模糊查询_mysql全文索引之模糊查询

    旧版的MySQL的全文索引只能用在MyISAM表格的char.varchar和text的字段上. 不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息大家可以随时关注官网, ...

  4. mysql 存储过程 模糊查询_Mysql之存储过程“模糊查询drop表”

    需求: 清空 show tables like "%2016%" 实现: DELIMITER // drop procedure if exists p_clean_table; ...

  5. mysql存储过程模糊查询_Mysql之存储过程“模糊查询drop表”

    需求: 清空 show tables like "%2016%" 实现: DELIMITER // drop procedure if exists p_clean_table; ...

  6. php mysql 模糊查询_PHP如何实现模糊查询(图文代码)

    本篇文章给大家带来的内容是关于PHP如何实现模糊查询(图文代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 简介从本质上揭密PHP模糊查询技术 功能根据输入的关键字查找相关用户 ...

  7. java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示

    目录 1.题目说明 2.实验设计 2.1 表设计 2.2 工程结构 3.运行界面截图与说明 4.小结 附录:源代码 src/main/java src/main/java/bean Goods.jav ...

  8. mysql教程多表查询_mysql重点,表查询操作和多表查询

    表单查询 1. 完整的查询语句语法 select distinct(* or 字段名 or 四则运算 )from 表名 where 条件 group by 条件 having 条件 order by ...

  9. mysql 新建子查询_Mysql创建SQL子查询ALIAS

    通常这些被称为视图.例如: CREATE VIEW vMyLongQuery AS SELECT a, b, c FROM (LONG QUERY) X WHERE ... 然后可以像这样引用: SE ...

最新文章

  1. android spinner 简书,【Android】Spinner:下拉列表笔记
  2. BigDecimal去除末尾多余的0
  3. 深度学习概览之自然语言处理:从基本概念到前沿研究
  4. eclipse的下载JDK的安装与配置
  5. yum安装apache及问题解决
  6. requirements.txt一键安装项目所需要的的python包
  7. mysql data transfer_MySQL主从同步加速 Transfer-- FAQ
  8. 计算机数据库管理基本知识,2015年计算机四级考试《数据库技术》基础知识:概念篇...
  9. 大数据学习笔记33:解决CentOS7上MySQL启动失败问题
  10. TIOBE 12 月排行榜:古老的 C 和后起之秀 Kotlin,谁是年度编程语言之王?
  11. python怎么读写文件-手机上怎么写pythonPython文件读写详解及设置文件的字符编码...
  12. const 使用方法具体解释
  13. (转)今天的人工智能比肩工业革命毫不夸张
  14. 软考软件设计师中级考试免费视频教程汇总
  15. VS2010 无法打开包括文件:“cv.h”
  16. vb c语言入门教程,c语言和vb哪个简单
  17. 分享Win10虚拟机VMware安装黑苹果MacOS Sierra图文教程
  18. 一句理解到底什么是雷达中的波位
  19. SylixOS移植常见问题——编译过多文件导致报错
  20. 董卿频上热搜的背后:阅读量之广令人惊叹,靠的不仅仅是坚持

热门文章

  1. 饺子(节操)播放器集成问题
  2. 视频播放+详情页+购物车
  3. 进厂都要去越南,富士康“曲线救国”,计划增加越南员工人数
  4. Android检查网络
  5. elasticsearch数据备份与恢复(kibana操作)
  6. 使用Metasploit框架测试ms08-067模块
  7. 关于12306网络购票的架构方面思考
  8. 网页三剑客,html/css/javascript
  9. 前端三剑客:HTML
  10. 中国一些著名网站的主题颜色