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 ...
随机推荐
- java.exe
进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程(例:FlashGet):就是进程中一个独立的控制单元.线程在控制着进程的执行.一个进程中 ...
- 12Js_原型对象
对象描述: 1. 每个对象中都有一个_proto_属性. JS世界中没有类(模具)的概念,对象是从另一个对象(原型)衍生出来的,所以每个对象中会有一个_proto_属性指向它的原型对象.(参考左上角的 ...
- 背水一战 Windows 10 (94) - 选取器: 自定义文件打开选取器
[源码下载] 背水一战 Windows 10 (94) - 选取器: 自定义文件打开选取器 作者:webabcd 介绍背水一战 Windows 10 之 选取器 自定义文件打开选取器 示例1.演示如何 ...
- 吴恩达机器学习笔记24-神经网络的模型表示1(Model Representation of Neural Network I)
神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型.这些神经元(也叫激活单元,activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出.下图是一个以逻辑回归模 ...
- 吴恩达机器学习笔记4-代价函数III(cost function)
这是代价函数的样子,等高线图,则可以看出在三维空间中存在一个使得
- Day3:html和css
Day3:html和css 多类名选择器 样式的显示效果是跟html元素中的类名先后顺序无关,而是跟css样式的书写上下顺序有关. <!DOCTYPE html> <html lan ...
- CSS3——:nth-child选择器基本用法简述
注:n 是从1开始的 :nth-child 是 CSS3 提供的一个好用的选择器,因为在项目中经常用到,所以简单总结了它的常用方法 下面示例代码截图用的是同一个例子,p元素的父元素都是body p ...
- [Postman]发送第一个请求(1)
通过API请求,您可以与具有要访问的API端点的服务器联系,并执行某些操作.这些操作是HTTP方法. 最常用的方法是GET,POST,PUT和DELETE.方法的名称是不言自明的.例如,GET使您可以 ...
- netty入门(一)
1. netty入门(一) 1.1. 传统socket编程 在任何时候都可能有大量的线程处于休眠状态,只是等待输入或者输出数据就绪,这可能算是一种资源浪费. 需要为每个线程的调用栈都分配内存,其默认值 ...
- 机器学习入门10 - 正则化:简单性(Regularization for Simplicity)
原文链接:https://developers.google.com/machine-learning/crash-course/regularization-for-simplicity 正则化指的 ...