当前位置: 首页 > 面试题库 >

基于WHERE IN子句数据的订单结果集

施自明
2023-03-14
问题内容

考虑以下MySQL查询:

SELECT
  someColumns
FROM
  someTable
WHERE
  someColumn IN ( value1, value2, value3 )

…如何保证行集按照提供给IN ()子句的值的确切顺序排好序?我猜想如果不给它一个ORDER BY子句就无法保证,对吗?

PS .: 子句
的值IN ()将是由PHP以以下方式(使用Zend Framework的select语句)传递给查询的任意数据的数组:

->where( 'someColumn in (?)', $theArrayWithValues );

问题答案:

在ORDER BY中使用CASE语句:

ORDER BY CASE someColumn
           WHEN value1 THEN 1
           WHEN value2 THEN 2
           WHEN value3 THEN 3
         END ASC

根据需要分配任意值。我通常不包括在内ASCORDER BY因为如果未定义则暗含它,但我想明确表示,以备DESC不时之需。



 类似资料:
  • 我想从一个表中创建一个报告,该表的数据可以根据用户的请求进行排序,我尝试如下 suppliers.blade.php 路线 报告控制器。php 我尝试按Id(Desc)和名称(Z-A)排序,但结果总是按Id(Asc)排序,如下所示

  • 问题内容: 我有一个基本的group by / avg语句: 我现在想做的是删除任何比平均ping高500的结果。我该怎么做…? 问题答案: 只需添加一个子句:

  • 我怀疑这很容易,但我不能让它像我想的那样工作。我正在使用我的Firebase数据库的查询信息引用数据库ref。下面的代码工作得很好,但我不能在Match_01中硬编码(这纯粹是为了让代码工作)。 我需要做的是使用已传递到片段的 matchID 并使用 equalTo 而不是引用最终的子节点。 但这不起作用,我无法将最后一个子引用换成订单ByChild引用。 感谢所有的帮助。

  • 问题内容: 我正在编写查询以获取与多个词组之一匹配的结果,例如 它可以按预期工作,但我有一个问题:10个得分结果都匹配相同的短语。 我想到的解决方案是将每个子句的结果数限制为例如5个元素。 问题在于,我看不到如何使用Elastic Search查询来实现此目的,也不知道是否可能,或者是否存在另一种执行我想要的方式。 有任何想法吗 ? 谢谢 ! 问题答案: 当您尝试实现3个查询的并集时,Elasti

  • 我有一个简单的问题: 这将返回如下结果: 但是现在我需要一种计算特定值的方法,这样我就可以返回不同事件类型中存在的许多结果 根据上面的结果,我想返回 有4个结果的event_type值为1等。

  • 我对一个< code>select有一些奇怪的问题。< code>WHERE子句中的顺序可能会影响结果吗? 这是我的选择: 这将重现这个结果:http://dl.dropbox.com/u/4892450/sqlSelectProblem/select1.PNG 当我使用这个条件时: (不同的顺序) 我得到一个不同的结果(参见 列): http://dl.dropbox.com/u/4892450