首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL根据输入的查询条件排序

问题      现在一个需求是查询某一列,用逗号分开,返回的结果要根据输入的顺序返回结果      比如:姓名的输入框输入的是(zhangsan,lisi),那么返回的结果也要是按照(zhangsan,...lisi)这样的顺序展示 测试 有如下表classroom,内容如下 如果根据字段名称去查,那么它会根据字典顺序排序,如下所示 select * from classroom where classname...in ("class2","class3") order by field(classname,"class3","class2") 如果我想在原来的基础上,在根据时间排序 select * from..."class2","class3") order by field(classname,"class3","class2") ,createTime 注意: 如上面的SQL所示,by field里的 条件必须比...in 里面的查询条件多,如果少一个,那么这个排序就不会成功 //成功 select * from classroom where classname in ("class2","class3") order

19910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面试官:MySQL如何实现查询数据并根据条件更新到另一张表?

    写在前面 今天,我们来聊聊MySQL实现查询数据并根据条件更新到另一张表的方法,如果文章对你有点帮助,麻烦小伙伴们点个赞,给个在看和转发。...t_role_user.t_user_id LEFT JOIN t_role ON t_role_user.t_role_id = t_role.id GROUP BY t_user.id 先把查到的数据存放到了一个新建的表...+------+---------------------------------------+ 3 rows in set (0.00 sec) insert into select from 查询到的记录插入到某个表中...INSERT INTO db1_name(field1,field2) SELECT field1,field2 FROM db2_name 要求目标db2必须存在,下面测试一下,有两个表,结构如下...所以在上面的实际需要中,我建立了新表mid,利用update来中转并更新数据 UPDATE tb1,tb2 SET tb1.address=tb2.address WHERE tb1.name=tb2.name 根据条件匹配

    1.7K10

    Mysql Join的实现原理

    MySQL中,只有一种Join算法,就是大名鼎鼎的NestedLoop Join 对左表进行遍历,拿一条数据和右表的每条数据进行比对,如果找到N条匹配的,此条左表记录分别和这N条右表记录组合为N条记录...,放到结果集合中,如果还有第三个表参与Join,则把前两个表的Join结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复 示例 有3个表: user_group 用户 group_message...消息 group_message_content 消息内容 想要取得某个用户所在的信息列表,执行下面的查询: SELECT m.subject msg_subject, c.content...3步: (1)在user_group表中查找user_id = 1的记录 (2)以user_group表过滤出来的结果集中的group_id字段作为查询条件,对group_message循环查询 (3)...通过user_group和group_message这两个表的结果集中的group_message的id作为条件,与group_message_content的group_msg_id比较进行循环查询

    1.7K60

    Vc数据库编程基础MySql数据库的表查询功能

    )---也就是函数   在一个行的集合(一行)上进行操作,对每个一个结果。...]     [group by 字段名]     [having 过滤条件] 1、group by子句   根据给定列或者表达式的每一个不同的值表中的行分成不同的,使用函数返回每一的统计信息 规则...我们可以group by操作想象成如下的一个过程:首先系统根据select语句得到一个结果集,然后根据分组字段,具有相同分组字段的记录归并成了一条记录。...  union用于把两个或者多个select查询的结果集合并成一个 SELECT ......默认情况下,UNION = UNION DISTINCT   ①进行合并的两个查询,其SELECT列表必须在数量和对应列的数据类型上保持一致;   ②默认会去掉两个查询结果集中的重复行;默认结果集不排序

    9.7K30

    MySQL8.0数据库基础教程(二) - 理解关系

    2.1 数据结构 表(关系Relation) 以列(值Tuple)和行(属性Attribute)的形式组织起来的数据的集合。一个数据库包括一个或多个表(关系Relation)。...参照完整性与实体完整性二者,皆是关系模型必须满足的完整性约束条件,其目的在于保证数据的一致性。 外键的参照完整性。...FROM employee ) dt; 我们括号中的查询结果(取名为 dt)作为输入值,传递给了外面的查询;最终整个语句的结果仍然是一个表。...SQL 中的查询可以完成各种数据操作,例如过滤转换、分组汇总、排序显示等;但是它们本质上都是针对表的操作,结果也是表。 不仅仅是查询语句,SQL 中的插入、更新和删除都以集合为操作对象。...由于我们通常一次插入一条数据,以为是按照数据行进行插入;实际上,一条数据也是一个集合,只不过它只有一个元素而已。 UNION ALL 是 SQL 中的并集运算,用于两个集合组成一个更大的集合。

    91531

    MySQL8.0数据库基础教程(二)-理解关系

    2.1 数据结构 表(关系Relation) 以列(值Tuple)和行(属性Attribute)的形式组织起来的数据的集合。一个数据库包括一个或多个表(关系Relation)。...参照完整性与实体完整性二者,皆是关系模型必须满足的完整性约束条件,其目的在于保证数据的一致性。 外键的参照完整性。...FROM employee ) dt; 我们括号中的查询结果(取名为 dt)作为输入值,传递给了外面的查询;最终整个语句的结果仍然是一个表。...SQL 中的查询可以完成各种数据操作,例如过滤转换、分组汇总、排序显示等;但是它们本质上都是针对表的操作,结果也是表。 不仅仅是查询语句,SQL 中的插入、更新和删除都以集合为操作对象。...由于我们通常一次插入一条数据,以为是按照数据行进行插入;实际上,一条数据也是一个集合,只不过它只有一个元素而已。 UNION ALL 是 SQL 中的并集运算,用于两个集合组成一个更大的集合。

    84121

    Mysqls

    通过相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。...MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询; 5. 结果返回给客户端。 ?...在MySQL中这点是不成立的,MySQLin()列表中的数据先进行排序,然后通过二分查找的方式来确定列表中的值是否满足条件,这是一个o(log n)复杂度的操作,等价转换成or的查询的复杂度为o(n)...查询执行引擎 在解析和优化阶段,MySQL生成查询对应的执行计划,MySQL查询执行引擎则根据这个执行计划来完成整个查询。...如果查询可以被缓存,那么MySQL在这个阶段,会将结果存放到查询缓存中。 MySQL结果返回客户端是一个增量、逐步返回的过程。

    67300

    数据库的检索语句

    1.1.3按条件过滤 因为表中全部的数据都从数据库中检索出来,所以会有很大的内存消耗以及网络资源消耗。 须要逐条检索每条数据是否符合过滤条件,所以检索速度很慢。...GROUP BY子句检索结果划分为多个,每一个是全部记录的一个子集。GROUP BY子句必须放到SELECT语句的之后,假设SELECT语句有WHERE子句。...从而实现“”的效果, 而查询的结果集是以最末一级分组来进行输出的。...联合结果集 有的时候我们须要组合两个全然不同的查询结果集, 而这两个查询结果之间没有必定的联系。仅仅是我们须要将他们显示在一个结果集中而已。...在SQL中能够使用UNION运算符来两个或者多个查询结果集联合为一个结果集中。 仅仅要用UNION操作符连接这两个查询语句就能够两个查询结果集联合为一个结果集。

    2.5K10

    MySQL8.0数据库基础教程(二)-理解关系

    2.1 数据结构 表(关系Relation) 以列(值Tuple)和行(属性Attribute)的形式组织起来的数据的集合。一个数据库包括一个或多个表(关系Relation)。...参照完整性与实体完整性二者,皆是关系模型必须满足的完整性约束条件,其目的在于保证数据的一致性。 外键的参照完整性。...FROM employee ) dt; 我们括号中的查询结果(取名为 dt)作为输入值,传递给了外面的查询;最终整个语句的结果仍然是一个表。...SQL 中的查询可以完成各种数据操作,例如过滤转换、分组汇总、排序显示等;但是它们本质上都是针对表的操作,结果也是表。 不仅仅是查询语句,SQL 中的插入、更新和删除都以集合为操作对象。...由于我们通常一次插入一条数据,以为是按照数据行进行插入;实际上,一条数据也是一个集合,只不过它只有一个元素而已。 UNION ALL 是 SQL 中的并集运算,用于两个集合组成一个更大的集合。

    1.2K11

    MySQL最常用分组聚合函数

    ]     [group by 字段名] [having 过滤条件] 1、group by子句   根据给定列或者表达式的每一个不同的值表中的行分成不同的,使用函数返回每一的统计信息 规则:...我们可以group by操作想象成如下的一个过程:首先系统根据select语句得到一个结果集,然后根据分组字段,具有相同分组字段的记录归并成了一条记录。...  union用于把两个或者多个select查询的结果集合并成一个 SELECT ......默认情况下,UNION = UNION DISTINCT   ①进行合并的两个查询,其SELECT列表必须在数量和对应列的数据类型上保持一致;   ②默认会去掉两个查询结果集中的重复行;默认结果集不排序...;   ③最终结果集的列名来自于第一个查询的SELECT列表 UNION ALL不去掉结果集中重复的行 注:联合查询结果使用第一个select语句中的字段名 mysql> select * from

    5.1K10

    MySQL最常用分组聚合函数

    ]     [group by 字段名]     [having 过滤条件] 1、group by子句   根据给定列或者表达式的每一个不同的值表中的行分成不同的,使用函数返回每一的统计信息 规则...我们可以group by操作想象成如下的一个过程:首先系统根据select语句得到一个结果集,然后根据分组字段,具有相同分组字段的记录归并成了一条记录。...  union用于把两个或者多个select查询的结果集合并成一个 SELECT ......默认情况下,UNION = UNION DISTINCT   ①进行合并的两个查询,其SELECT列表必须在数量和对应列的数据类型上保持一致;   ②默认会去掉两个查询结果集中的重复行;默认结果集不排序...;   ③最终结果集的列名来自于第一个查询的SELECT列表 UNION ALL不去掉结果集中重复的行 注:联合查询结果使用第一个select语句中的字段名 mysql> select * from

    5.2K20

    MySQL多表联合查询

    MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组。...例1:根据 tb_students_info 表中的 sex 字段进行分组查询,使用 GROUP_CONCAT() 函数每个分组的 name 字段的值都显示出来 mysql> select sex,...,sex 字段值为“女”的是一,值为“男”的是一,且每组的学生姓名都显示出来了 例2:根据 tb_students_info 表中的 age 和 sex 字段进行分组查询 mysql> select...注意 多个字段分组查询时,会先按照第一个字段进行分组。如果第一个字段中有相同的值,MySQL 才会按照第二个字段进行分组。...1、6 子查询查询一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。

    10.5K50

    你好MyBatis 中高级篇

    但是如果大家经过认真思考之后,一定会发现很多问题: 例如JDBC中的一些查询条件可以根据业务需求而改变,使得一个查询语句完成多种查询,而在MyBatis中,似乎一个查询语句只能完成一个功能;例如多个条件的模糊查询...,根据不同查询条件查询对应的i结果等等!...,当用户只输入作者姓名时,只按照作者姓名查询;当用户只输入文章名称时只按照文章姓名查找;当作者数据文章标题和作者名称时,按照两个文章进行查询!...两个条件都存在时: package com.senior.test; import com.complete.util.MyBatisUtil; import com.senior.dao.BookDao...--1=1的作用是 当第一个条件不成立,第二个条件执行时,前面会多个and 导致报错,故加上一个无关紧要的条件来取消掉这个错误--> <select id="queryBookByAuthorOrName

    18820

    SQL 注入漏洞浅研究学习

    'or 1=1 -- ' and password = '********' 上述SQL语句则是我们输入万能密码后,服务器后台拼接的SQL语句;仔细观察语句,发现 ‘ or 1=1 -- 的作用就是前面的语句闭合为空...= ' ' or 1=1 -- ' ' 上例SQL语句则是拼接后的语句,可以观察出,’ 与之前的单引号成对,两个单引号之间的内容闭合了,其后 or 1=1 则可以形成一个单独的非字符串的SQL功能语句...—————————— https://mp.weixin.qq.com/s/vIHbtpi6eiv4ZoZ9ztyjsA 常见的mysql数据库注入姿势:(引用上方链接内容) 功能  |    查询语句...: 第一步:判断注入点   我们需要判断数字型还是字符型注入类型,主要依靠or或and条件语句是否被处理(单引号闭合和语句注释非常重要) 第二部:猜解字段数   我们需要猜出我们查询语句中的字段数; 1...—————————————————————— SQL盲注: 1、判断注入点 2、猜解当前库名   盲注不可以利用回显注入的方式直接获得数据,但是我们可以一一猜解,猜解条件就是利用前面的真假条件: 1

    77810

    基础SQL-DQL语句-条件查询-排序-聚合函数-分组-limit语句

    条件查询 前面我们的查询都是所有数据都查询出来,但是有时候我们只想获取到满足条件的数据 语法格式:SELECT 字段名 FROM 表名 WHERE 条件;流程:取出表中的每条数据,满足条件的记录就返回...不满足 具体操作: 查询age大于35且性别为男的学生(两个条件同时满足) mysql> SELECT * FROM stu3 WHERE age>35 and sex='男'; +------+--...> 查询age大于35或性别为男的学生(两个条件其中一个满足) mysql> SELECT * FROM stu3 WHERE age>35 or sex='男'; +------+--------...聚合函数 之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个结果值。...> 实际上是每组的math进行求和,返回每组统计的结果 注意事项:当我们使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不到数据属于哪查询的时候没有查询出分组字段 查询的时候查询出分组字段

    3.6K10

    MySQL】表的增删查改(进阶)

    多表查询是对多张表的数据取笛卡尔积: 笛卡尔积是通过排列组合来的。 笛卡尔积得到一个更大的表。列数就是两个表列数只和。行数就是两个表行数之积。...那么如何进行联合查询呢? 先计算笛卡尔积 引入连接条件根据需求,加入必要的条件。 把不必要的列去掉 联合查询,还有一种写法。...先笛卡尔积 加上连接条件 加上聚合查询,把同一个同学的行合并到同一个中同时计算总分 任务3:查询所有同学的成绩以及同学的个人信息 分析:期望查询结果中,有个人信息(student表),...子查询就是把两个操作合并~ 多行子查询 返回多行记录的子查询 任务:查询“语文”或者“英语课程的成绩信息” 分析:1.现根据名字查课程id 2.根据课程id查询课程分数 在这里插入图片描述...合并查询 本质上是吧两个查询的结果集,合并成一个

    3.1K20
    领券