关于mysql数据库模糊查询的潜在问题

这篇具有很好参考价值的文章主要介绍了关于mysql数据库模糊查询的潜在问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初学者在学习的时候经常会写下面的模糊查询语句:

SELECT * 
FROM student
WHERE Sname like '%蔡徐坤%'

有两方面的问题,第一,我们从结果分析入手:
左模糊查询,数据库,elasticsearch,大数据,搜索引擎,mysql,sql

我们想看到的是什么,我们想看到的是蔡徐坤这个字符串能出现在我搜索的第一个位置,而不是我明明搜的蔡徐坤,蔡徐坤却出现在了最后面,前面一堆不太相干的。而之所以会这样,是因为mysqsl默认是按照主键排序的,所以我们要对结果集进行排序。
直接上答案:

SELECT * 
FROM student
WHERE Sname like '%蔡徐坤%'
ORDER BY CHAR_LENGTH(Sname),locate('蔡徐坤',Sname)

左模糊查询,数据库,elasticsearch,大数据,搜索引擎,mysql,sql
代码翻译:先根据你搜索的字段长度进行升序,如果长度相同,谁是‘蔡徐坤’谁优先排序。

第二个问题就是建议不要使用左模糊或者全模糊,因为索引文件具有 B-Tree 的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。阿里规范是强制不能使用的,左模糊查询,数据库,elasticsearch,大数据,搜索引擎,mysql,sql
那要如何解决呢?
搜索引擎我只用过elasticsearch,下面我就就这个问题回顾一下es。

es就下载然后安装ik分词器就好了,然后postman测试一下
左模糊查询,数据库,elasticsearch,大数据,搜索引擎,mysql,sql
然后加索引和映射:
左模糊查询,数据库,elasticsearch,大数据,搜索引擎,mysql,sql

然后添加数据,多添加几个
左模糊查询,数据库,elasticsearch,大数据,搜索引擎,mysql,sql
然后用match查找单个字段就可以了,他会计算出每个词的匹配度,按照匹配度排序,那么我们开局说的问题也就不需要考虑了。
左模糊查询,数据库,elasticsearch,大数据,搜索引擎,mysql,sql文章来源地址https://www.toymoban.com/news/detail-541500.html

到了这里,关于关于mysql数据库模糊查询的潜在问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于数据库json 字段的查询

    1、查询json字符串中是否包含某个节点 2、查询json字符串中某个节点等于或者不等于某个值 需要注意的点json串和json数组匹配方式不同 json数组匹配  $[*].name  或者 $[0].name json串 $.name 这里发现一个总结的很好的博主,推荐一下 mysql中json_extract的使用方法_-王尚可-的博客-CSDN博

    2024年02月16日
    浏览(51)
  • 关于两个不同数据库的两张表建立数据库链接,关联查询数据

    数据库链接(database link)是用于跨不同数据库之间进行连接和数据传输的工具或方法。它允许在一个数据库中访问另一个数据库中的对象和数据。 --1.建立链接tjpt 上述示例中的  pt_user 、 pt_password  和  10.70.231.130/orcl 需要替换为实际的用户、密码和数据库信息。 创建链接后

    2024年02月10日
    浏览(36)
  • MySQL数据库——MySQL WHERE:条件查询数据

    在 MySQL 中,如果需要有条件的从数据表中查询数据,可以使用 WHERE 来指定查询条件。 使用 WHERE 的语法格式如下: WHERE 查询条件 查询条件可以是: 带比较运算符和逻辑运算符的查询条件 带 BETWEEN AND 的查询条件 带 IS NULL 的查询条件 带 IN

    2024年02月03日
    浏览(43)
  • MySQL数据库,联合查询

    目录 1. 联合查询 1.1 内查询 1.2 外查询 1.3 自连接 1.4 子查询 1.5 合并查询 联合查询,简单的来讲就是多个表联合起来进行查询。这样的查询在我们实际的开发中会用到很多,因此会用 笛卡尔积 的概念。 啥是笛卡尔积?两张表经过笛卡尔积后得到的新表的列数是两表列数之和

    2023年04月23日
    浏览(59)
  • MySQL数据库,聚合查询

    目录 1、聚合查询 1.1聚合函数 1.1.1count函数 1.1.2sum函数 1.1.3avg函数 1.1.4max函数 1.1.5min函数 1.2group by子句 1.3having 聚合函数查询又叫函数查询,它是通过一些特定的函数根据需求来查询相关的信息,常见的聚合函数为: COUNT - 求总数,不包含某字段为null值 SUM - 求和,不包含某字

    2023年04月21日
    浏览(45)
  • MySQL数据库实验三 MySQL查询

    一、实验项目: MySQL查询。 二、实验目的 掌握MySQL的查询操作。 三、实验内容 (一): 1、查询lineitem表中商品编号(productid)和单价(unitprice),要求消除重复行。 2、计算lineitem表中每条记录的商品金额。 3、显示orders表单笔高于200元的客户号(userid)、成交金额(total

    2024年02月11日
    浏览(42)
  • MySQL数据库:数据库的约束以及数据的聚合、联合查询

    目录 一.关系模型的简要概述 二.数据库的约束  2.1约束类型         2.2NULL约束 2.3 UNIQUE:唯一约束 2.4 默认约束 2.5 PRIMARY KEY:主键约束 2.6 FOREIGN KEY:外键约束 2.7 CHECK约束 三.高效率查询 3.1高效率查询的分类 3.2聚合查询 3.2.1聚合函数 3.2.2 GROUP BY子句 3.2.3HAVING 3.3.联合查询

    2024年02月10日
    浏览(53)
  • 如何查看其他电脑的MYSQL数据库 mysql查询另一个ip数据库

    文章标签 如何查看其他电脑的MYSQL数据库mysql数据库服务器MySQL 文章分类 MySQL数据库 阅读数 143 1.如何通过IP访问MySQL数据库 1.1 改表法 1.2 授权法 2.MySQL数据库基本命令 2.1 基本命令 2.2 注释 2.3 2.4 实践操作 3 小结 1.1 改表法 如果不从远程登陆,可以用 localhost 。这个时候

    2024年01月21日
    浏览(54)
  • MySQL数据库高级查询语句

    基于这两个数据库表格来实现以下实验 concat(x,y)将提供的参数x和y拼接成一个字符串 trim()返回去除指定格式的值 GROUP BY 有一个原则,凡是在 GROUP BY 后面出现的字段,必须在 SELECT 后面出现; 凡是在 SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在 GROUP BY 后

    2024年02月11日
    浏览(46)
  • MySQL数据库——高级查询语句

    数据库是用来存储数据,更新,查询数据的工具,而查询数据是一个数据库最为核心的功能,数据库是用来承载信息,而信息是用来分析和查看的。所以掌握更为精细化的查询方式是很有必要的。本文将围绕数据的高级查询语句展开。 1.指定指字段进行查询——SELECT 语法:

    2024年02月11日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包