首页
学习
活动
专区
圈层
工具
发布

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

lisi)这样的顺序展示 测试 有如下表classroom,内容如下 如果根据字段名称去查,那么它会根据字典顺序排序,如下所示 select * from classroom where classname...in ("class2","class3") order by classname 如果想根据我in里面的顺序去排序,那么只能是如下所示 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

1.7K10

MySQL ORDER BY IF() 条件排序

在做sqlzoo的时候,碰到一个SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部 通过的方法就是IN语句(也可以通过IF语句) 自己做了个测试,如下,这个是表的所有内容...正如上面一段说的,你可以把if 语句看成是独立的column,所以你也可以为他添加排序条件ASC或者DESC,当然默认是ASC,可以不写。...这样,查询就等于第一步是查询隐藏属性0,1,然后进行DESC排序,因为species=snake的返回值是0,所以进行倒序排列时,就被排在了最后 以此类推,你在进行隐藏属性优先排序的同时,对于剩下的排序...使用ORDER BY配合IN语句 上面一个是满足单个条件,返回0或者1,那如果需要用到一个范围呢?...这样的话,birth IN语句会进行判断,如果birth满足条件,返回1,不满足,返回0 所以,满足条件的两行,因为返回值是1,进行ASC排序的时候,就被放置在了最后。

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

    Excel公式技巧50: 根据条件来排序

    有时候,我们想基于指定的条件对数据进行排序,如下图1所示,记录了不同区域员工的销售额。 ? 图1 我们想要给不同区域的员工按销售额从大到小的顺序排序,即想要下图2所示的结果。...公式中: (--(B2=B2:B24)) 将单元格B2中的值与单元格区域B2:B24中的每个值相比较,得到: (--{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE...公式中: (--(C2<C24)) 检查单元格C2中的数值是否小于单元格区域C2:C24中的值,得到: (--{FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE...C2中的值。...相乘后得到的数组中的1表示该区域中大于单元格C2中的值对应的单元格;将其相加得到该区域中大于单元格C2中的值对应的单元格数。

    3.2K30

    Excel公式技巧51: 根据条件来排序(续)

    在《Excel公式技巧50:根据条件来排序》中,我们基于指定的一个条件对数据进行排序,所举示例为给不同区域的员工按销售额从大到小的顺序排序,结果如下图1所示。 ?...图1 如果想要基于两个条件或者多个条件来排序呢?例如,下图2所示的工作表,给员工按区域和不同产品的销售额从大到小来排序。 ?...公式中: (B2:B24=B2) 将公式所在单元格中行对应的列B中的值与单元格区域B2:B24中的每个值相比较,得到一个由TRUE/FALSE值组成的数组:TRUE表示区域中与该单元格值相等的单元格,FALSE...同理,公式中: (C2:C24=C2) 也得到一个由TRUE/FALSE值组成的数组,表示公式所在单元格中行对应的列C中的值与单元格区域C2:C24中的每个值相对较的结果。...公式中: (D2<D24) 将公式所在单元格行对应的列D中的值与单元格区域D2:D24中的每个值比较,如果比该值大则为TRUE,否则为FALSE,也得到一个由TRUE/FALSE值组成的数组。

    2.8K60

    mysql中条件函数

    ——周国平《风中的纸屑》 在我们日常开发中,有时可能会在SQL中写一些条件,例如这里一个例子 这里有这样一张表,数据如下: 如果我们需要把未认证(状态为NOT_AUTH)的用户放到前面排序显示,在不影响分页的情况下...我们可以这么写 SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC 这里使用到了MYSQL...的IF函数 IF([条件],[为true时值],[为false时值]) 例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的 我们则可以使用MYSQL中的CASE、WHEN、THEN、ELSE...WHEN STATUS = 'HAS_AUTH' THEN 2 ELSE 999 END ) AS sort FROM `user` ORDER BY sort ASC 这里 CASE WHEN [条件...1] THEN [条件1满足时值] WHEN [条件2] THEN [条件2满足时值] WHEN [条件3] THEN [条件3满足时值] ELSE [条件都不满足时值] END Tips:在除了查询语句中

    4.2K10

    MySQL 条件下推与排序优化实例--MySQL8.035

    where 条件中的过滤是左表,则还是可以把where条件写到上面,但如果过滤条件的表是右面的表,且使用的是left join,则不能把时间的条件写到 join后,而是需要写到where 条件中。...情况 建议写法 想保留左表所有记录 过滤条件写在 ON 子句 明确只取有右表匹配的 用 INNER JOIN 或 LEFT JOIN + WHERE 在MySQL中,条件下推 是一种优化策略:将 WHERE...在我们上图的执行中,可以多次运行两种语句观察具体的执行时间,在观察中我发现一些规律和问题。 一、在where条件中撰写条件,比在join后跟上过滤条件,运行的时间总是 where条件使用更多的时间。...MySQL数据库中,对于几个词老手都是敏感的 1  倒排 2  filesort 3  临时表 问题 1,什么情况可以避免使用filesort 在有排序的情况下 答:在查询的字段都在索引中,且排序的字段为这个索引的第一个字段的情况下...在查询中由于本身数据处理引擎比较弱,很多复杂的语句需要进行拆分,同时在mysql中的条件下推 predicate Pushdown 要会使用,分清楚什么时候可以把条件写到 JOIN中,什么时候不可以会导致业务逻辑错误

    15200

    多条件排序

    今天跟大家分享多条件排序的技巧!...之前分享过关于excel中的排序菜单及所有的排序函数,但是这些菜单和函数的排序功能仅限于单列排序,无法完成多列的多条件排序功能,今天跟大家分享excel中的多条件排序功能——自定义排序!...首先将鼠标定位到需要排序的目标数据区域,然后选择数据——排序与筛选——排序菜单。(或者开始菜单中的编辑——排序与筛选——自定义排序)。 ? ? 然后会弹出排序设置菜单。 ?...然后在添加条件里选择有限排序的列,并设置好排序条件(升序or降序)。 ? 你选择的主要关键字将会成为软件对原数据区域列排序的先后依据,而每一个关键字的升序与降序则控制排序的规则。 ?...排序是属于数据预处理工作中的基本既能,一定要掌握好,排序可以让我们很迅速的发现整体数据中的重复值、异常值情况,可以及时清洗、整理,以免之后带来不必要的麻烦。

    1.4K60

    Swift 中如何进行多重条件排序

    , rhs) in return lhs < rhs } // [1, 2, 3, 5, 6, 8] 但有时我们需要根据多个条件或属性来进行排序。...在这种情况下,需要根据另一个条件或属性来进行进一步的排序。 我们将在本文中讨论这种多属性排序。他们有各种各样的方法来解决这个问题。我将展示没有任何复杂概念的最基本的方法。...什么是多条件排序 ---- 多条件排序是指我们比较第一个条件的排序,只有当第一个条件相等时,我们才转到下一个条件。我们这样做直到找到一个不相等的条件。... 如果这个顺序条件相等,我们不能根据它来决定顺序,就跳到下一个条件。 如果我们可以根据条件决定两个对象之间的顺序,我们就停止并返回结果。 如果你很难理解伪代码,不用担心。...---- 不难发现,根据两个条件来排序非常简单。

    1.6K20
    领券