mysql全文索引之模糊查询
旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。
不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息大家可以随时关注官网,
下面我来谈谈mysql全文索引的用法,网上很多啦,我只讲讲我所了解滴部分哈:
我的mysql版本是:
新建一张表test:
CREATE TABLE `test` (
`name` char(12) NOT NULL DEFAULT '',
`nickname` char(12) NOT NULL DEFAULT '',
FULLTEXT KEY `name` (`name`,`nickname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入测试数据:
INSERT INTO `test` (`name`, `nickname`) VALUES("马特", "我喜欢laravel");
INSERT INTO `test` (`name`, `nickname`) VALUES("马特", "我喜欢laravel吧");
INSERT INTO `test` (`name`, `nickname`) VALUES("吉普森", "我不喜欢laravel啊");
INSERT INTO `test` (`name`, `nickname`) VALUES("吉普森", "我不会吧 啊");
INSERT INTO `test` (`name`, `nickname`) VALUES("凯文", "我真的不会吧");
INSERT INTO `test` (`name`, `nickname`) VALUES("玛丽", "我真的 不会吧");
好,数据接口和测数据已经添加完毕,回到"全文索引"...我们说下基本使用:
1.创建全文索引(FullText index)
1.1. 创建表的同时创建全文索引
CREATE TABLE `test` (
`name` char(12) NOT NULL DEFAULT '',
`nickname` char(12) NOT NULL DEFAULT '',
FULLTEXT KEY `name` (`name`,`nickname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1.2.通过 alter table 的方式来添加
ALTER TABLE `test` ADD FULLTEXT INDEX username (`name`) #username 是索引名,可以随便起 或者:ALTER TABLE `test` ADD FULLTEXT username (`name`)
1.3. 直接通过create index的方式
CREATE FULLTEXT INDEX username ON `test` (`name`) CREATE FULLTEXT INDEX username ON `test` (`name`(20)) # 也可以在创建索引的时候指定索引的长度
2. 删除全文索引
2.1. 直接使用 drop index(注意:没有 drop fulltext index 这种用法)
DROP INDEX username ON test
2.2. 使用 alter table的方式
ALTER TABLE test DROP INDEX username;
3.使用全文索引
跟普通索引稍有不同
使用全文索引的格式: MATCH (columnName) AGAINST ('string')
比如:
未完待续...
mysql全文索引之模糊查询的更多相关文章
- mysql中的模糊查询
转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...
- PHP MYSQL登陆和模糊查询
PHP MYSQL登陆和模糊查询 PHP版本 5.5.12 MYSQL版本 5.6.17 Apache 2.4.9 用的wampserver 一.PHPMYSQL实现登陆: 一共含有两个 ...
- MySQL中的模糊查询和通配符转义
MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词). 第一种是标准的SQL模式匹配.它有2 ...
- MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果
注:MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果: 如下所示: MySQL: select * from tableName where name li ...
- 使用mybatis从mysql里进行模糊查询的编码问题
关于这个问题,记录下我的解决方法,希望对有同样困惑的朋友,有所帮助. 问题描述: 我在做mybatis从mysql里模糊查询时,如果模糊的关键词是字母的话,可以查出来.如果模糊的关键词是汉字的话,查不 ...
- mysql进阶(六)模糊查询的四种用法介绍
mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1 %: 表示任意0个或多个字符.可匹配任意类型 ...
- python中的mysql数据库like模糊查询
%在python中是个特殊的符号,如%s,%d分别代表了字符串占位符和数字占位符. 大家知道,mysql的模糊查询也需要用到%. 所以,可以先把需要查的字符串抽出来,再以参数方式传入. args = ...
- mysql通配符进行模糊查询
在mysql数据库中,当我们需要模糊查询的时候 ,我们会使用到通配符. 首先我们来了解一下2个概念,一个是操作符,一个是通配符. 操作符 like就是SQL语句中的操作符,它的作用是指示在SQL语句后 ...
- elasticsearch 7.x 如何满足mysql中的模糊查询功能(like)
业务场景:筛选项原功能是用mysql左模糊进行过滤查询,现业务要用es,怎么样才能满足原功能,又不损性能. elasticsearch中有关于模糊查询的操作:wildcard 文档:https://b ...
随机推荐
- 补发————grid布局
CSS Grid布局是CSS中最强大的布局系统.与flexbox的一位布局不同的是CSS Grid布局是一个二维布局系统,即它可以同时处理列和行.通过将CSS规则应用于父元素和其子元素,就可以轻松使用 ...
- Navicat连接oracle库报错的处理方法
1.oracle客户端版本:11.2.0 64X navicat premium客户端:12.0. 64X 2.安装后,打开连接,输入连接信息,点击保存,提示oracle library is no ...
- CDN随笔
CDN的理解:(1)CDN (内容分发网络)加速用户获取数据的 系统(2)部署在离用户最近的网络节点上(3)命中CDN 不需要访问后端服务器(4)互联网公司自己搭建或租用
- [编译] 2、minGW gcc在windows搭建编译win32程序环境
1.普通下载一个MinGW程序.安装之后可以直接将MinGW目录拷贝到总工程的tool里面: demo_mesh_common tree -L 2 . ├── app ├── bin ├── buil ...
- MySQL注入技巧性研究
0x00 前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,本人最近针对MySQL注入做了 ...
- ElasticSearch写入数据的工作原理是什么?
面试题 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗? 面试官心理分析 问这个,其实面试官就是要看看你了解不了解 es 的一些基 ...
- 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结
本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言 MySQL作为开源技术的代表作之一,是 ...
- 一分钟理解 HTTPS 到底解决了什么问题
本文原作者“虞大胆的叽叽喳喳”,原文链接:jianshu.com/p/8861da5734ba,感谢原作者. 1.引言 很多人一提到 HTTPS,第一反应就是安全,对于普通用户来说这就足够了: 但对于 ...
- 在Apache上http强制跳转到https
https已经配置完成,也可以正常使用,但输入域名或http加域名时也一样可以打开网站,于是想强制使用https 大概百度了一下方法,感觉与之前设置二级域名绑定二级目录时差不多 首先,修改httpd. ...
- 全栈开发工程师微信小程序-上(下)
全栈开发工程师微信小程序-上(下) icon 图标 success, success_no_circle, info, warn, waiting, cancel, download, search, ...