首页 后端开发 php教程 为什么我的 Mysql 不支持中文查询_PHP

为什么我的 Mysql 不支持中文查询_PHP

Jun 01, 2016 pm 12:34 PM
mysql 中文 为什么 包含 支持 方法 查询 记录

MySQL查询

Q:

我在写一个查询条件时的问题如下:
如我想写一个字段中包含“李”字的所有记录
$str="李";
select * from table where field like '%$str%' ;
显示的记录中除了包含”李”字的记录,还有不包含“李”字的记录。为什么?

A:

在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。

  出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。

方法一:

解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。

方法二:

  如果你使用源码编译MySQL,可以编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。

方法三:

  可以使用 Mysql 的 locate 函数来判断。以上述问题为例,使用方法为:
SELECT * FROM table WHERE locate(field,'李') > 0;
本站使用的就是这种方法,感觉还不错。:P


方法四:

把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'即可!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

C语言 !x 的优先级是什么? C语言 !x 的优先级是什么? Apr 03, 2025 pm 02:06 PM

逻辑非运算符 (!) 的优先级仅次于括号,这意味着在表达式中,它会优先于其他大多数运算符执行。理解优先级不仅需要死记硬背,更重要的是理解其背后的逻辑和潜在陷阱,以避免在复杂的表达式中产生难以察觉的错误。加括号可以明确表达式意图,提高代码清晰度和可维护性,防止意外行为。

C语言 default 的最佳实践 C语言 default 的最佳实践 Apr 03, 2025 pm 03:48 PM

C语言的default最佳实践:放置在switch语句最后,作为未匹配值的默认处理;用于处理未知或无效值,提高程序健壮性;避免与case分支重复,以保持简洁;注释清楚default分支用途,提高可读性;避免在一个case中使用多个default,保持清晰度;保持default分支简洁,避免复杂操作;考虑使用枚举值作为case条件,提高可维护性;在大型switch语句中,使用多个default分支处理不同情况。

c语言函数怎么表示最大公约数教程 c语言函数怎么表示最大公约数教程 Apr 03, 2025 pm 11:21 PM

C 语言中高效优雅地求最大公约数的方法:使用辗转相除法,通过不断除数取余直到余数为 0 的方式求解。提供了递归和迭代两种实现方式,递归实现简洁明了,迭代实现性能更高,更稳定。注意处理负数和 0 的情况,并考虑性能优化,但辗转相除法本身已足够高效。

前端FileReader文件读取:为什么需要先实例化再读取? 前端FileReader文件读取:为什么需要先实例化再读取? Apr 04, 2025 pm 01:48 PM

关于FileReader实例化与文件读取在前端开发中,我们经常需要处理用户上传的文件。使用

探索文件拆分和合并:管理大文件的革命性工具 探索文件拆分和合并:管理大文件的革命性工具 Apr 04, 2025 am 07:15 AM

您是否曾在传输或存储大量文件时遇到困难?了解FileSplitter&Merger,这是一个开源项目,旨在以优雅和高效的方式简化这一挑战。这个项目是做什么的?文件分割和合并由两个工具组成:文件分割器—将大文件分成更小的块。文件合并—将这些块重新组合成原始文件为什么有用?处理非常大的文件可能会令人畏惧,尤其是在传输或存储它们时。这些工具允许您将文件分割成可管理的片段,然后从这些片段重建原始文件。文件分割器该程序将输入文件分割成指定大小的较小块。每个块都保存为单独的文件。用法:复制要分割的文

为什么我的 RxJS 代码在对流进行操作时不生效? 为什么我的 RxJS 代码在对流进行操作时不生效? Apr 04, 2025 pm 06:27 PM

使用RxJS对流进行操作时,为何我的代码不生效?在学习RxJS...

为什么vue-router跳转后控制台网络中没有页面请求信息? 为什么vue-router跳转后控制台网络中没有页面请求信息? Apr 04, 2025 pm 05:27 PM

为什么vue-router跳转后控制台网络中没有页面请求信息?在使用vue-router进行页面跳转时,你可能会注意到一个现�...

C/C   中未使用的变量:为什么以及如何使用? C/C 中未使用的变量:为什么以及如何使用? Apr 03, 2025 pm 10:48 PM

在C/C 代码审查中,经常会遇到未使用变量的情况。本文将探讨产生未使用变量的常见原因,并介绍如何让编译器发出警告以及如何抑制特定警告。未使用变量的成因代码中出现未使用变量的原因多种多样:代码缺陷或错误:最直接的原因是代码本身存在问题,变量可能根本不需要,或者需要但未被正确使用。代码重构:软件开发过程中,代码会不断修改和重构,一些曾经重要的变量可能会被遗留下来,导致未使用。预留变量:开发人员可能会预先声明一些变量,以备将来使用,但最终未用到。条件编译:一些变量可能只在特定条件下(例如调试模式)才

See all articles