b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解决mysql中文模糊查询问题的方法

电脑杂谈  发布时间:2020-03-22 03:11:12  来源:网络整理

c 语言模糊查询_c 语言模糊查询_c语言实现模糊算法

执行中文模糊搜索时,通常会返回一些不相关的记录. 例如,当搜索“%a%”时,可能会返回汉字,但不存在任何字符.

通过阅读MySQL手册,我找到了一个令人满意的解决方案.

c语言实现模糊算法_c 语言模糊查询_c 语言模糊查询

我希望通过“标题”搜索新闻库,关键字可能包含中文和英文,以下是SQL语句:

代码如下: 从achech_com.news中选择ID,标题,名称,其中标题如“%a%”

c语言实现模糊算法_c 语言模糊查询_c 语言模糊查询

返回结果. 某些标题字段肯定带有“ a”关键字,而某些标题字段仅中文,但它们也会在搜索结果中返回.

解决方法,使用BINARY属性进行搜索,例如:

c语言实现模糊算法_c 语言模糊查询_c 语言模糊查询

代码如下: 从achech_com.news中选择id,标题,名称,其中二进制标题如'%a%'

返回的结果比以前更准确,但是英文字母区分大小写c 语言模糊查询,因此有时“ Achech”和“ achech”之类的结果是不同的. 知道使用BINARY属性可以解决前面的问题,然后看一下MySQL支持的UCASE和CONCAT函数. 其中,UCASE将所有英语都转换为大写,并且CONCAT函数的作用是连接字符. 以下是完全解析的SQL语句:

c语言实现模糊算法_c 语言模糊查询_c 语言模糊查询

代码如下: 从achech_com.news中选择ID,标题,名称

其中二进制ucase(标题)如con('%',ucase('a'),'%')

搜索步骤是首先将属性指定为BINARY以便准确检索结果,并且类似的标题内容可能具有大写和小写字母. 因此,首先使用ucase函数将所有字段内容转换为大写字母,然后执行类似的运算,并且类似的运算使用模糊方法. 使用concat的优点是它可以是直接关键字,而无需使用“%”通配符. 您可以使用变量直接替换“'a'”. 一切在语言上都是无忧的. 当然,您也可以这样写:

代码如下: 从achech_com.news中选择ID,标题,名称,其中二进制ucase(标题)如ucase('%a%')

搜索结果还可以c 语言模糊查询,但是速度可能慢N毫秒.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-147861-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...