当前位置: 首页 > 编程日记 > 正文

MySQL数据库中文模糊检索问题

我在这里谈一下 MYSQL的中文模糊搜索。
我的MYSQL版本。
version()
5.1.22-rc-community-log
这里用到的表:
Table   Create Table                                          
------  -------------------------------------------------------
a1      CREATE TABLE `a1` (                                   
          `id` int(11) NOT NULL AUTO_INCREMENT,               
          `str1` char(255) DEFAULT NULL,                      
          PRIMARY KEY (`id`)                                  
        ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 
示例数据:
set names gbk;
insert into a1(str1) values
('靠'),('FUCK'),('fuck'),
('I love your mind.'),
('大话西游'),('卡拉是条狗'),
('没完没了');
(0 row(s)affected)
(0 ms taken)

(7 row(s)affected)
(0 ms taken)


如果想要查出有哪条记录包含卡拉的。
1、用LIKE 语句 。


select * from a1 where str1 like '%卡拉%';

query result(1 records)

idstr1
6卡拉是条狗

2、用INSTR 函数。

select * from a1 where instr(str1,'卡拉') != 0;

query result(1 records)

idstr1
6卡拉是条狗
如果是中英文混合的记录,同样适合。

insert into a1(str1) values('我唉你,卡拉,wo ai ni,I love you');

query result(2 records)

idstr1
6卡拉是条狗
8我唉你,卡拉,wo ai ni,I love you

这两条语句的效率是一样的。

explain select * from a1 where str1 like '%卡拉%';
explain select * from a1 where instr(str1,'卡拉') != 0;

query result(1 records)

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1SIMPLEa1ALL(NULL)(NULL)(NULL)(NULL)8Using where



3、以前的那些所谓的加binary 来查询的,完全是因为编码不对所致,如果遇到中文查不到的话,应该立即检查你的
show variables like '%char%';
的执行结果。
或者说你的MYSQL版本太低的话建议升级到最新稳定版。
binary关键字只在区分大小写或者你要按二进制查询的时候有效。





select * from a1 where binary str1 like '%I love%';

query result(2 records)

idstr1
4I love your mind.
8我唉你,卡拉,wo ai ni,I love you


select * from a1 where binary str1 like '%i love%';

(0 row(s)returned)
(0 ms taken)

相关文章:

最新Python学习项目Top10!

作者 | Mybridge译者 | Linstancy整理 | Jane出品 | AI科技大本营【导读】过去一个月里,我们对近1000个Python 学习项目进行了排名,并挑选出热度前10的项目。这份清单涵盖了包括Web App, Geospatial Data, Time Paradox, Testing in Python, Crash repor…

理解HTTP消息头【很完整,例子也很丰富】

(一)初识HTTP消息头 但凡搞WEB开发的人都离不开HTTP(超文本传输协议),而要了解HTTP,除了HTML本身以外,还有一部分不可忽视的就是HTTP消息头。做过Socket编程的人都知道,当我们设计一…

css样式分类

1.内联式(直接在标签里写属性,属性名为style) 2.内嵌式 (直接嵌入到head标签里面,以标签形式出现,标签名为style) 选择器:用来选择标签 1:用标签选择 2:用ID选择 关键符…

hadoop mysql mybatis_MyBatis简介与配置MyBatis+Spring+MySql

MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言…

MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...

### 第3篇:MySQL基本操作语句- MySQL基础操作#### 排序检索数据- 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的- SELECT语句的ORDER BY 子句进行排序mysql# 没有特定的顺序查询 (虽然结果看起来是有序的,是因为数据表中就是这…

如何高效推进ML模型开发和部署?Uber机器学习平台Michelangelo实践

作者 | Jeremy Hermann & Mike Del Balso 译者 | 王天宇 整理 | Jane 出品 | AI科技大本营 【导读】2017年9月,Uber 在技术社区发表了一篇文章向大家介绍了 Uber 的机器学习平台 —— Michelangelo。随着平台的日渐成熟,Uber 的业务数量与能力也随…

Api 函数: GetCursorPos 与转换

//获取鼠标在窗体中的当前位置 procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer); varstr: string; beginstr : Format(%d,%d,[X,Y]);ShowMessage(str); end;//用 GetCursorPos 获取的是鼠标相对与屏幕的位置 varps:…

向下滚动页面导航悬浮

为什么80%的码农都做不了架构师?>>> 做两个导航,第二个隐藏 下拉到一定位置,显示第二个,position:fixed $(function(){$(window).scroll(function () {var top $(document).scrollTop();var m$(".nav")…

胜过iPhone XS?Google Pixel的“夜视功能”是怎样炼成的

作者 | Marc Levoy、Yael Pritch译者 | 刘旭坤整理 | Jane出品 | AI科技大本营【导读】随着智能手机的不断发展成熟,为了寻找差异化的厂商不断增加摄像头的数量。然而,摄像头的数量越多,就代表拍照的质量越好吗?Google Pixel 手机…

npm导入bootstrap_vue cli3.0如何通过npm引入jquery和bootstrap?

不建议通过npm的方式引入这两个东西,因为这两个东西本身就是打包好的,通过npm的方式过去,还得在webpack中排除掉,迂回。要用就直接在html中通过script和link标签引入。jQuery是时代的产物,如果要用到vue,那…

ABAP 一个隐藏 selection-screen block的实例

以下是一个演示如何通过 selection-screen 中的pushbutton来动态改变屏幕上的字段的显示状态的(即显示或者隐藏)。注意:显示 通过本示例可知selection-screen 中的 field 的显示状态都是 的,在程序中修改其属性 active 的值为 0 时…

python计算文件中字母出现次数_python – 计算文本文件中字母的频率

使用collections.Counter():from collections import Counterwith open(file) as f:c Counter()for x in f:c Counter(x.strip())正如mgilson指出的那样,如果文件不是那么大,你可以简单地做:c Counter(f.read().strip())例:>>> c…

公开课报名 | 详解CNN-pFSMN模型以及在语音识别中的应用

近年来,在深度学习技术的帮助下,语音识别取得了极大的进展,从实验室开始走向市场,走向实用化。基于语音识别技术的输入法、搜索和翻译等人机交互场景都有了广泛的应用。Librispeech是当前衡量语音识别技术的最权威主流的开源数据集…

Ruby开发环境配置

一、 RoR IDE http://deadlock.netbeans.org/hudson/job/ruby/ 你可以从这个地方下载Ruby IDE专用版本的netbeans,只有30MB大小,速度比RadRails还快!netbeans的RoR支持很强大,但也要注意两点: 1) 一定要用JDK6.0&am…

net localgroup 命令详解

http://www.jb51.net/article/24733.htm windows 核心安装中,关闭防火墙的命令 netsh advfirewall set allprofiles state off Hyper-v使用远程管理工具的相关设置: http://technet.microsoft.com/zh-cn/library/cc794756(vws.10).aspx 在SCVMM中添加Hyp…

ii 第七单元 访问网络共享文件系统

挂载网络文件系统 网络文件系统是由网络附加存储服务器通过网络向多个主机提供的一种文件系统 , 而不是由块设备 ( 例如硬盘驱动器 ) 提供的。客户端通过特殊的文件系统协议和格式访问远程存储 Linux 中有两种主要协议可用访问网络文件系统 : NFS 和CIFS 。 访问网络共享的三个…

最新机器学习开源项目Top10

作者 | Mybridge译者 | Linstancy整理 | Jane出品 | AI科技大本营【导读】过去一个月里,我们对近 1400 个机器学习项目进行了排名,并挑选出热度前 10 的项目。这份清单涵盖了包括 OpenAI 最新开发的 RND 算法、Uber 构建的第一个自然语言处理平台、由 Be…

linux批处理mysql数据库_使用批处理对MySQL进行数据批量操作

批处理是一种非交互式运行MySQL程序的方法,如同您在MySQL中使用的命令一样,你仍然将使用这些命令。为了实现批处理,您重定向一个文件到MySQL程序中,首先我们需要一个文本文件,这个文本文件包含有与我们在MySQL中输入的…

JDBC Driver常用连接方法列表

Microsoft SQL Server series (6.5, 7.x and 2000) and Sybase 10JDBC Name: jTDSURL: [url]http://jtds.sourceforge.net/[/url]Version: 0.5.1Download URL: [url]http://sourceforge.net/project/show...?group_id33291[/url]语法: Class.forName("net.sourceforge.jt…

C#强化系列文章四:匿名方法的使用

匿名方法相信很多人都听过,它是C#2.0的一个新特性,顾名思义,匿名方法就是没有名称的方法。那么在C#中的匿名方法有哪些好处,在C#中如何使用呢?匿名方法最明显的好处就是可以降低另写一个方法的工作量,另外一…

AI人才抢夺“生猛”: 应届博士年薪涨到80万元

作者 | 王玉凤来源 | 本文授权转自第一财经人工智能(AI)人才薪水之高、涨幅之大,颇有令人瞠目结舌之感。一年前,针对AI领域的应届毕业生,硕士生约莫能拿到30万元的年薪,博士生则高达50万元。今年&#xff0…

mysql的表空间是否自动扩展_Oracle修改指定表空间为自动扩展

1.数据文件自动扩展的好处1)不会出现因为没有剩余空间可以利用到数据无法写入2)尽量减少人为的维护3)可以用于重要级别不是很大的数据库中,如测试数据库等2.数据文件自动扩展的弊端1)如果任其扩大,在数据量不断变大的过程中会导致某个数据文件异常的大2)…

3.15好水指数N1能否让饮水健康不失控?

题记:3.15晚会曾曝光碱性水无益健康,过度饮用对人体有害。但现在市场上仍然有企业打着“碱性水有益健康”的招牌做营销,其居心何在呢?饮用水指数N1和中国优水地图在3.15这天正式发布,它们能对我们的饮水健康产生多大的影响? 凯文…

【iOS-cocos2d-X 游戏开发之十四】cocos2dx(c++)中访问object函数

Cocos2dx系列博文的上一篇详细介绍了如何在Xcode中利用jni调用Android的Java层代码,还没有看过的童鞋,请移步到如下博文: 【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用…

mysql实验报告四_实验报告四

实 实 验 报 告 课程名称 数据库实验及课程设计 实验项目 数据查询 实验 仪器 ___________________________ 系 别______信息管理学院______ 专 业________ ____________ 班级/ / 学号_ _ 学生姓名 _____ _____________ 实验日期 成 绩 _______________________ 指导教师 施永香…

京东数科业务架构全披露,陈生强发布城市操作系统和京东钼媒

11 月 20 日,在 JDD-2018 京东数字全球探索者大会上,陈生强宣布,京东数字科技(JD Digits)正式成为京东金融的母品牌,这也意味着它的业务架构逐渐明晰,主要下设了京东金融、京东城市、京东农牧、…

自动化测试十大要点

当一款自动化测试工具引入到一个项目中,我们通常对它给予很高的期望;项目成员希望工具能够尽可能的缩小测试范围、节约成本并缩短项目进度,然而可悲的是,很多采用自动化测试的项目依然失败了。 以下几个方面严重影响着自动化测试的…

DataGridView取得或者修改当前单元格的内容

当前单元格指的是DataGridView 焦点所在的单元格,它可以通过DataGridView 对象的CurrentCell 属性取得。如果当前单元格不存在的时候,返回Nothing(C#是null) [VB.NET] 取得当前单元格内容Console.WriteLine(DataGridView1.CurrentCell.Value) 取得当前单…

名图怎么弄云服务器_云服务器购买了宽带的速度怎么测试?

西昆云详细说一下企业租用云服务器搭建网站,很多新手站长会把带宽当成宽带来测试,比如在自己的云服务器上下载东西测试速度,一旦下载的东西慢了就觉得有问题,其实这是不准确的,那么如何查看云服务器的带宽速度呢&#…

ERP实施注意方面

一 厂商方面 1.信息化产品本身的功能需要强大而且灵活,应当能够指导企业管理水平的提升并适应企业的不同管理需要 2.厂商实力雄厚,人员稳定,服务周到,EPR 是个长期合作的过程 二 企业自身方面 1.企业自身管理意识,对ER…