MySQL 8中使用全文检索示例
首先建议张册测试用的表test,并使用fulltext说明将title和body两列的数据加入全文检索的索引列中:
drop table if exists test;
create table test (
id integer not null primary key auto_increment,
title varchar(50),
body longtext,
fulltext(title, body) with parser ngram
);
然后往其中插入数据:
insert into test (title, body) values
('金缕衣', '劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。'),
('送别', '山中相送罢,日暮掩柴扉。春草明年绿,王孙归不归。'),
('春晓', '春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。'),
('江雪', '千山鸟飞绝,万径人踪灭。孤舟蓑笠翁,独钓寒江雪。'),
('何满子', '故国三千里,深宫二十年。一声何满子,双泪落君前。');
然后我们可以执行如下语句来查询“山”这个字:
select * from test where match(title, body) against ('金缕衣' in natural language mode);
结果如下:
mysql> select * from test where match(title, body) against ('金缕衣' in natural language mode);
+----+-----------+--------------------------------------------------------------------------------------------------+
| id | title | body |
+----+-----------+--------------------------------------------------------------------------------------------------+
| 1 | 金缕衣 | 劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。 |
+----+-----------+--------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
或者我们可以用bool模式查看即包含“三千”又包含“二十”的数据:
select * from articles where match(title, body) against ('+三千 +二十' in boolean mode);
结果如下:
mysql> select * from test where match(title, body) against ('+三千 +二十' in boolean mode);
+----+-----------+--------------------------------------------------------------------------+
| id | title | body |
+----+-----------+--------------------------------------------------------------------------+
| 5 | 何满子 | 故国三千里,深宫二十年。一声何满子,双泪落君前。 |
+----+-----------+--------------------------------------------------------------------------+
1 row in set (0.00 sec)
更多信息请参考这篇博客,写的非常好!:https://www.jianshu.com/p/645402711dac
MySQL 8中使用全文检索示例的更多相关文章
- MySQL 5.7 中文全文检索
MySQL 5.7 中文全文检索 在 MySQL 5.7.6 之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库.从 MySQL 5.7.6 ...
- MySQL语句中的转义字符----引号
MySQL语言中的转义字符和各种编程语言基本相同,见下表 形式 含义 \0 0(NUL)字符 \n 换行 \r 回车符 \t 制表符 \b 退格 \' 单引号 \" 双引号 \\ 反斜线 \ ...
- mysql数据库中插入数据INSERT INTO SET的优势
往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...
- NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用
NET MVC全局异常处理(一) 目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...
- 在MySQL字段中使用逗号分隔符
大多数开发者应该都遇到过在mysql字段中存储逗号分割字符串的经历,无论这些被分割的字段代表的是id还是tag,这个字段都应该具有如下几个共性. 被分割的字段一定是有限而且数量较少的,我们不可能在一个 ...
- 如何从mysql数据库中取到随机的记录
如何从mysql数据库中取到随机的记录 一.总结 一句话总结:用随机函数newID(),select top N * from table_name order by newid() ----N是一个 ...
- Docker入门(四)——MySQL镜像中的数据库可视化
在详细介绍这篇文章的内容前,需要说明下笔者写这篇文章的意图:笔者在现有的开发中,前后端联调的方式为Docker镜像对接,数据库使用MySQL镜像,开发环境为远程服务器,因此,笔者迫切需要一种能将远 ...
- MySql InnoDB中的锁研究
# MySql InnoDB中的锁研究 ## 1.InnoDB中有哪些锁### 1. 共享和排他(独占)锁(Shared and Exclusive Locks) InnoDB实现标准的行级锁定,其中 ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
随机推荐
- [转载]pythonnet
python与c#的交互模块pythonnethttp://www.cnblogs.com/tester-zhenghan/p/5406521.html [集成IronPython] 添加CLR对象到 ...
- JMX类型监控
zabbix服务器配置 zabbix_server.conf: JavaGateway=10.42.239.219 #JavaGateway的IP JavaGatewayPort=10052 #Jav ...
- mysql创建账号、授权、数据导出、导入
1.账号创建及授权 grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant opti ...
- golang 闭包
说起golang闭包,在官方手册里面看过一次,没怎么用过,还是因为6哥经常用,阅读他的代码好多闭包,emmm,今天就学习一下. 在过去近十年时间里,面向对象编程大行其道,以至于在大学的教育里,老师也只 ...
- GO语言测试
Go语言的测试技术是相对低级的.它依赖一个 go test 测试命令和一组按照约定方式编写的 测试函数,测试命令可以运行这些测试函数.编写相对轻量级的纯测试代码是有效的,而且它很容易延伸到基准测试和示 ...
- ciscn2019华北赛区半决赛day2_web1题解
比赛结束以后采用非官方复现平台做的题,和比赛题有轻微不同,比赛中存放flag的table是ctf,这里是flag. 题目地址 buuoj.cn 解题过程 题目中只有一个页面,需要提交id. id为1, ...
- 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件
1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...
- 手写HashMap实践
1.什么是HashMap 2.源码分析 3.手写实现 4.不足 一.什么是HashMap hash散列 将一个任意长度通过某种算法(hash函数算法)换成一个固定值 map: 地图x,y 存储 总结: ...
- windows 下的Python虚拟环境(vitrualen)pycharm创建Django项目
问题:MySQL Strict Mode is not set for database connection 'default' 初学Django遇到问题-MySQL Strict Mode is ...
- 在Android Studio中下载Android SDK的两种方式(Android Studio3.0、windows)
方式一:网站下载:https://androidsdkmanager.azurewebsites.net/SDKPlatform 方式二.设置HTTP Proxy1. 打开Settings2. 点击H ...