mysql使用什么替代like查询_mysql替代like模糊查询的最佳方法?????求赐教!!!!...
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模糊查询的最佳方法?????求赐教!!!!...相关推荐
- mysql 索引的模糊查询_MYSQL语法(模糊查询,视图,索引)
MYSQL语法(模糊查询,视图,索引) 2020年08月11日 | 萬仟网IT编程 | 我要评论 MYSQL模糊查询模糊查询,查询name 以张开头的数据select *from t1 where n ...
- mysql 电话模糊查询_mysql中的模糊查询
转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...
- MySQL全文索引模糊查询_mysql全文索引之模糊查询
旧版的MySQL的全文索引只能用在MyISAM表格的char.varchar和text的字段上. 不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息大家可以随时关注官网, ...
- mysql 存储过程 模糊查询_Mysql之存储过程“模糊查询drop表”
需求: 清空 show tables like "%2016%" 实现: DELIMITER // drop procedure if exists p_clean_table; ...
- mysql存储过程模糊查询_Mysql之存储过程“模糊查询drop表”
需求: 清空 show tables like "%2016%" 实现: DELIMITER // drop procedure if exists p_clean_table; ...
- php mysql 模糊查询_PHP如何实现模糊查询(图文代码)
本篇文章给大家带来的内容是关于PHP如何实现模糊查询(图文代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 简介从本质上揭密PHP模糊查询技术 功能根据输入的关键字查找相关用户 ...
- java程序设计与j2ee中间件技术/软件开发技术(III)-大作业-采用MVC模式实现商品信息的查询显示(可以模糊查询)、增加和删除功能,商品表自拟,实现简单菜单操作和分页显示
目录 1.题目说明 2.实验设计 2.1 表设计 2.2 工程结构 3.运行界面截图与说明 4.小结 附录:源代码 src/main/java src/main/java/bean Goods.jav ...
- mysql教程多表查询_mysql重点,表查询操作和多表查询
表单查询 1. 完整的查询语句语法 select distinct(* or 字段名 or 四则运算 )from 表名 where 条件 group by 条件 having 条件 order by ...
- mysql 新建子查询_Mysql创建SQL子查询ALIAS
通常这些被称为视图.例如: CREATE VIEW vMyLongQuery AS SELECT a, b, c FROM (LONG QUERY) X WHERE ... 然后可以像这样引用: SE ...
最新文章
- android spinner 简书,【Android】Spinner:下拉列表笔记
- BigDecimal去除末尾多余的0
- 深度学习概览之自然语言处理:从基本概念到前沿研究
- eclipse的下载JDK的安装与配置
- yum安装apache及问题解决
- requirements.txt一键安装项目所需要的的python包
- mysql data transfer_MySQL主从同步加速 Transfer-- FAQ
- 计算机数据库管理基本知识,2015年计算机四级考试《数据库技术》基础知识:概念篇...
- 大数据学习笔记33:解决CentOS7上MySQL启动失败问题
- TIOBE 12 月排行榜:古老的 C 和后起之秀 Kotlin,谁是年度编程语言之王?
- python怎么读写文件-手机上怎么写pythonPython文件读写详解及设置文件的字符编码...
- const 使用方法具体解释
- (转)今天的人工智能比肩工业革命毫不夸张
- 软考软件设计师中级考试免费视频教程汇总
- VS2010 无法打开包括文件:“cv.h”
- vb c语言入门教程,c语言和vb哪个简单
- 分享Win10虚拟机VMware安装黑苹果MacOS Sierra图文教程
- 一句理解到底什么是雷达中的波位
- SylixOS移植常见问题——编译过多文件导致报错
- 董卿频上热搜的背后:阅读量之广令人惊叹,靠的不仅仅是坚持