首页 > 数据库 >【MySQL】MySQL番外01 — MySQL单表多字段模糊查询解决方法

【MySQL】MySQL番外01 — MySQL单表多字段模糊查询解决方法

时间:2023-04-04 22:22:06浏览次数:40  
标签:01 last name 番外 查询 MySQL CONCAT first

MySQL单表多字段模糊查询解决方法

背景:在项目中经常遇到查询接口需要实现单表中对多字段进行多个关键字的模糊查询,但这个关键字并不一定只存在于某个字段。

  • 例如现有一张employees表,其中有last_name,first_name两个字段,分别记录一条用户的姓和名。根据用户输入的查询请求,在这两个字段中查询员工姓名的第三个字母是a的员工信息。

  • 目前遇到的问题是,a是可能存在于两个字段中的任意一个或者多个,但又要求两个字段必须包含所有的关键词a。如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到方法:把两个字段合并在一块,再进行模糊查找

    # 在查询记录的同时,将需要进行多字段模糊查询的字段合并成一个字串并加入到一个新的字段中,然后对这个新字段进行模糊查询。
    
    SELECT
    	*
    FROM
    	employees
    WHERE
    	CONCAT(last_name,first_name) LIKE '__a%';
    
    /*
    注意: CONCAT(str1, str2, ...)
    返回值:由全体输入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NULL。CONCAT允许只有一个输入参数的情况。
    */
     
    

  • 但,如果用户的查询请求更改为,在这两个字段中查询员工姓名的第三个字母是a员工姓名。SQL语句将改为如下吗?
    SELECT
    	CONCAT(last_name,first_name) AS "员工姓名"
    FROM
    	employees
    WHERE
    	CONCAT(last_name,first_name) LIKE '__a%';
    
    /*
    逻辑上是不是没有什么错误?为了满足查询的显示结果是员工姓名。
    我们将last_name和first_name进行了合并,形成新的字段并起了别名为员工姓名。
    
    那试试看能否正常运行吧?十分欢迎把你的运行结果公布在评论区里。
    如果不能运行,请思考报错原因后进行修改,并把你的更改思路在评论区里发表出来~
    */
     
    

标签:01,last,name,番外,查询,MySQL,CONCAT,first
From: https://www.cnblogs.com/blog-cjz/p/17288105.html

相关文章

  • 力扣614(MySQL)-二级关注者(中等)
    题目:在facebook中,表follow会有2个字段:followee,follower,分别表示被关注者和关注者。请写一个sql查询语句,对每一个关注者,查询关注他的关注者的数目。比方说: 应该输出: 解释:B和D都在在follower字段中出现,作为被关注者,B被C和D关注,D被E关注。A不在......
  • mysql数据库安装
    参考连接1、超级详细的mysql数据库安装指南2、MySQL安装过程中,出现CheckRequirements缺少C++动态库即MicrosoftVisualC++2013Redistributable问题二、安装步骤(基本和第一个参考链接相同,下面是差异的地方)1、检查安装要求,不可以点击Next,点击Execute会出现错误。提示没有......
  • 【MySQL】MySQL基础03 — SQL学习 — DQL — 条件查询
    SQL学习—DQL—条件查询DQL语言学习数据查询语言(DataQueryLanguage),关键字select使用DQL前,先输入USE库名;2.条件查询语法:select`查询列表`from表名where筛选条件;分类:/*分类: 一、按条件表达式筛选 条件运算符:><=!=(<>)>=<= 二、按......
  • 【MySQL】MySQL基础 — SQL学习 — DQL — 基础查询
    SQL学习—DQL—基础查询DQL语言学习数据查询语言(DataQueryLanguage),关键字select使用DQL前,先输入USE库名;1.基础查询1.1查询字段#基础查询/*语法:select`查询列表`from表名;#`查询列表`,`着重号表明是字段,可加可不加,当关键字和字段名重叠,用`着重号区......
  • flask框架01 flask与pythonweb框架介绍 flask快速使用 登录显示用户信息案列 配置
    今日内容详细目录今日内容详细1Flask和pythonweb框架介绍1.1flask介绍2flask快速使用3登录,显示用户信息小案例3.1login.html3.2home.html3.3detail.html3.4py文件4配置文件方式5路由系统5.1转换器1Flask和pythonweb框架介绍pythonweb框架的本质都一样1.同步框架......
  • Qt6编译MySQL驱动最简单方法
    最近qt发布最新lts版本qt6.5,就想下来试试新功能。qt版本6.5.0,安装目录E:\Qt\6.5.0mysql版本8.0,安装目录C:\MySQL_Server_8.0,或者直接下连接器解压也可以:MySQL::DownloadMySQLConnector/C(ArchivedVersions)需要额外安装qt的sources源组件,忘了也没关系,在cmd下进入包含Main......
  • Solution Set - APIO2014
    目录A.回文串B.序列分割C.连珠线A回文串给定字符串\(S\)。对\(S\)的所有回文子串,求其长度与出现次数之积的最大值。\(|S|\le300000\)。点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull......
  • MYSQL-Explain详解
    --实际SQL,查找用户名为Jefabc的员工select*fromempwherename='Jefabc';--查看SQL是否使用索引,前面加上explain即可explainselect*fromempwherename='Jefabc';expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref......
  • mysql5.7 启用SSL
    服务器端启动配置查看默认数据目录#ls-ldata/total122944-rw-r-----1mysqlmysql56Apr417:21auto.cnf-rw-------1mysqlmysql1676Apr417:21ca-key.pem-rw-r--r--1mysqlmysql1112Apr417:21ca.pem-rw-r--r--1mysqlmysql1......
  • 01_微信公众号_话题_提取链接_一行一个
    nodejscheerio提取超链接import{log}from"console";import{readFileSync,readdirSync,lstatSync,createWriteStream,mkdirSync,statSync,}from"fs";import{basename,join,resolve}from"path";import{load......