数据库表有内容搜索不出内容

简介:

昨天最近在入库数据的时候,发现mysql在同一数据库下有两张表,用网站搜索内容的时候,只能出现一张表的结果(两张表里有同样的内容,正常可以搜索出来的)但是在MySQL命令行下检索就正常。


刚开始认为是编码、字段名、索引、导出的文件去除了BOM头(签名)等的错误,用Navicat查看测试,结果都排除了,奇怪!!!


又怀疑是不是入库时文本文件头有“杂乱”数据,在这个库上用TXT导出,在入库还是不行。又导出SQL脚本,在入库还是不行。更奇怪了!!!


百度、群里询问无果,一头雾水的一天过去。


今天,在反复测试的时候,无意间发现导出的TXT导入回去有问题,导出的SQL脚本,把SQL里的脚本语句删除,只留数据和TXT的文本一样时,导入数据后,数据就突然正常。


原因一:

返回值数量不匹配。如网站需要返回user,pasword,email三个值,但是你数据库只有user,email两个值,那就不能正确的返回。


原因二:

那会会是有问题数据连软件都没发现呢?

这是我觉得用十六进制去查看下到底有什么,用WinHex打开文件后,果然发现问题,红色箭头处。


经过分析,数据在第一次入库时候已经把BOM头入库了,之后你不管怎么导出,始终是有那个BOM头信息的,因为它在数据区,而正常的BOM在头部区,而文本编辑软件如“EmEditor”只会判断头部区是否有BOM,而不会判断数据区,所以软件在另存的时候没有发现这个问题。导致你怎么弄都会携带BOM头,而且入库时被当成数据入库,就造成数据检索问题。


wKioL1fJRbKQyHfIAAF3dGOTzfc020.jpg


那为什么导出的SQL就能正常呢?

因为他导出时候在数据区,而且BOM头前后都有正常的SQL语句,在SQL转成TXT时,“无意”中就把BOM头给删除了,所以后来导入就正常了。



这是MySQL数据库文件。

wKioL1fJRbPAxoteAAEurzwU1jY109.jpg


这是要入库的文件,一个是入库后表有问题,一个是入库后表能正常使用的。

wKiom1fJRbShRxXMAAE7PB4B2Ys657.jpg


本文转自 piazini 51CTO博客,原文链接:http://blog.51cto.com/wutou/1845686


目录
打赏
0
0
0
0
344
分享
相关文章
MySQL实现文档全文搜索,分词匹配多段落重排展示,知识库搜索原理分享
本文介绍了在文档管理系统中实现高效全文搜索的方案。为解决原有ES搜索引擎私有化部署复杂、运维成本高的问题,我们转而使用MySQL实现搜索功能。通过对用户输入预处理、数据库模糊匹配、结果分段与关键字标红等步骤,实现了精准且高效的搜索效果。目前方案适用于中小企业,未来将根据需求优化并可能重新引入专业搜索引擎以提升性能。
从零开始掌握全文本搜索:快速查找信息的最佳实践
全文本搜索技术(Full-text search)通过关键词或短语快速准确查找文档,其核心在于对文本数据的全面检索和索引。主要步骤包括分词处理、建立倒排索引、关键词匹配和结果排序。常见工具如Lucene、Solr和Elasticsearch提供了强大的搜索功能和高扩展性,适用于大数据和复杂数据分析,广泛应用于搜索引擎、日志分析等领域。
69 0
数据管理DMS操作报错合集之执行列表模糊搜索,无法搜到对应表的记录,是什么原因
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
9月前
|
JavaSE——正则表达式(2/2):应用案例、查找信息、用于搜索替换、分割内容
JavaSE——正则表达式(2/2):应用案例、查找信息、用于搜索替换、分割内容
37 0
自定义命令历史搜索
【4月更文挑战第30天】
48 0
小程序搜索弹出搜索内容功能(模糊查询)
小程序搜索弹出搜索内容功能(模糊查询)
104 0
批量查找文本中的内容
@echo off findstr /ims "查找内容" *.*>list.txtps:把含有相关文字内容的文档输出到list.txt文本中,适用于能用notepad打开的各种文档.   是一个修改升级的版本,原程序是这个《批量查找替换文本文件内容》。
1083 0
Linunx搜索,查找类
1.Linux find 命令 Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 按文件名查找: 例如:查找服务器上所有名为hello.txt的文件:
149 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等