精华内容
下载资源
问答
  • Elasticsearch sort排序子句

    千次阅读 2021-01-14 11:12:25
    ES的默认排序是根据相关性分数排序,如果我们想根据查询结果中的指定字段排序,需要使用sort Processors处理。sort语法:GET /{索引名}/_search{"query": {...查询条件....},"sort": [{"{Field1}": { // 排序字段1...

    ES的默认排序是根据相关性分数排序,如果我们想根据查询结果中的指定字段排序,需要使用sort Processors处理。

    sort语法:

    GET /{索引名}/_search

    {

    "query": {

    ...查询条件....

    },

    "sort": [

    {

    "{Field1}": { // 排序字段1

    "order": "desc" // 排序方向,asc或者desc, 升序和降序

    }

    },

    {

    "{Field2}": { // 排序字段2

    "order": "desc" // 排序方向,asc或者desc, 升序和降序

    }

    }

    ....多个排序字段.....

    ]

    }

    sort子句支持多个字段排序,类似SQL的order by。

    例子1:

    GET /order_v2/_search

    {

    "query": {

    "match_all": {}

    },

    "sort": [

    {

    "order_no": {

    "order": "desc"

    }

    },

    {

    "shop_id": {

    "order": "asc"

    }

    }

    ]

    }

    查询order_v2索引的所有结果,结果根据order_no字段降序,order_no相等的时候,再根据shop_id字段升序排序。

    类似SQL:

    select * from order_v2 order by order_no desc, shop_id asc

    例子2:

    GET /order_v2/_search

    {

    "query": {

    "match_all": {}

    },

    "sort": [

    {

    "user.id": { // 嵌套json对象,使用 点 连接字段名即可

    "order": "desc"

    }

    }

    ]

    }

    展开全文
  • MariaDB ORDER BY排序子句

    2021-04-28 06:40:03
    如前面讨论中提到的,ORDER BY子句对语句的结果进行排序。 它指定操作数据的顺序,并包括按升序(ASC)或降序(DESC)顺序排序的选项。 在省略订单规格时,默认顺序为升序。ORDER BY子句出现在各种各样的语句中,例如...

    如前面讨论中提到的,ORDER BY子句对语句的结果进行排序。 它指定操作数据的顺序,并包括按升序(ASC)或降序(DESC)顺序排序的选项。 在省略订单规格时,默认顺序为升序。

    ORDER BY子句出现在各种各样的语句中,例如DELETE和UPDATE。 它们总是出现在语句的结尾,而不是在子查询中或在set函数之前,因为它们在最终结果表上操作。 您也不能使用整数来标识列。

    查看下面给出的ORDER BY子句的一般语法 -SELECT field, field2,... [or column] FROM table_name, table_name2,...

    ORDER BY field, field2,... ASC[or DESC]

    在命令提示符处或PHP脚本中使用ORDER BY子句。

    命令提示符

    在命令提示符下,只需使用标准命令 -root@ host# mysql -u root -p password;

    Enter password:*******

    mysql> use PRODUCTS;

    Database changed

    mysql> SELECT * from products_tbl ORDER BY product_manufacturer ASC

    +-------------+----------------+----------------------+

    | ID_number | Nomenclature | product_manufacturer |

    +-------------+----------------+----------------------+

    | 56789 | SuperBlast 400 | LMN Corp |

    +-------------+----------------+----------------------+

    | 67891 | Zoomzoom 5000 | QFT Corp |

    +-------------+----------------+----------------------+

    | 12347 | Orbitron 1000 | XYZ Corp |

    +-------------+----------------+----------------------+

    PHP脚本中使用ORDER BY子句

    在使用ORDER BY子句的语句中再次使用mysql_query()函数 -<?php

    $dbhost = 'localhost:3036';

    $dbuser = 'root';

    $dbpass = 'rootpassword';

    $conn = mysql_connect($dbhost, $dbuser, $dbpass);

    if(! $conn ) {

    die('Could not connect: ' . mysql_error());

    }

    $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date

    FROM products_tbl ORDER BY product_manufacturer DESC';

    mysql_select_db('PRODUCTS');

    $retval = mysql_query( $sql, $conn );

    if(! $retval ) {

    die('Could not get data: ' . mysql_error());

    }

    while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {

    echo "Product ID :{$row['product_id']}
    ".

    "Name: {$row['product_name']}
    ".

    "Manufacturer: {$row['product_manufacturer']}
    ".

    "Ship Date : {$row['ship_date']}
    ".

    "--------------------------------
    ";

    }

    echo "Fetched data successfully

    ";

    mysql_close($conn);

    ?>

    成功的数据检索后,您将看到以下输出 -Product ID: 12347

    Nomenclature: Orbitron 1000

    Manufacturer: XYZ Corp

    Ship Date: 01/01/17

    ----------------------------------------------

    Product ID: 67891

    Nomenclature: Zoomzoom 5000

    Manufacturer: QFT Corp

    Ship Date: 01/01/17

    ----------------------------------------------

    Product ID: 56789

    Nomenclature: SuperBlast 400

    Manufacturer: LMN Corp

    Ship Date: 01/04/17

    ----------------------------------------------

    mysql> Fetched data successfully

    展开全文
  • 刚刚写的SQL语句在执行的时候报【ORA-01785: ORDER BY item must be the number of a SELECT-list expression...先不说错误的问题,我们先用常规的写法写一句带排序子句的SQL语句。SELECT ID, CODE, NAME FROM STUD...

    刚刚写的SQL语句在执行的时候报【ORA-01785: ORDER BY item must be the number of a SELECT-list expression】错误,于是自己百度了一下相关错误,发现是和Oracle排序语句的特殊写法有关系,这里记录一下。

    先不说错误的问题,我们先用常规的写法写一句带排序子句的SQL语句。

    SELECT ID, CODE, NAME FROM STUDENT ORDER BY CODE;

    这样写是能够正常执行的。

    然后说一下排序子句的特殊写法。特殊的写法就是在ORDER BY排序子句中,可以用数字(相当于下标 + 1)代替要用来排序的字段。比如说上面的SQL语句,用来排序的字段是CODE,它在前面的SELECT子句的字段中排第二位,那么就可以用数字2来代替它。

    SELECT ID, CODE, NAME FROM STUDENT ORDER BY 2;

    这样查询出来的结果和上面的语句查询出来的结果是一样的。

    然后我们来做个试验,把ORDER BY子句中的数字改成4试一下,这时数字4在前面的SELECT子句中是没有对应的字段的,因为SELECT子句中只有三个字段。

    SELECT ID, CODE, NAME FROM STUDENT ORDER BY 4;

    不出意料的,报ORA-01785的错误了。

    70f15b1ace7811c579cb67ac9e484fef.png

    到这里我们就可以明白,这个错误是因为ORDER BY子句中的数字代表的字段位数超出SELECT子句中的字段个数引起的。意思就是说,当SELECT子句中的字段有5个,那么ORDER BY子句中的数字就不能大于5,范围区间是[1,5]。

    当然,也可以进行多个字段排序和升序降序排序的。

    SELECT ID, CODE, NAME FROM STUDENT ORDER BY 2 DESC, 3;

    看到这里,当下次遇到ORA-01785错误的时候,聪明的你就知道怎么解决啦。

    "夕阳无限好,只是近黄昏。"

    展开全文
  • 5.结果集排序:ORDERBY子句 5.1排序基本内容 5.2排序排序原则 5.3多个排序条件 5.4查询语句中子句的执行顺序 5.5一点说明 6.去除结果集重的重复记录 6.1重复记录问题描述 6.2去重语法:DISTINCT 6.3D...

    本篇博客,内容有点啰嗦,需要时,快速浏览,效果更佳。 

    目录

    零:导入SQL文件,创建演示所需的表;

    一:基本查询

    1.最基本查询 :

    2.给【结果集】中的字段重命名:AS

    3.查询语句中子句的执行顺序

    4.数据分页:LIMIT子句

    5.结果集排序:ORDER BY 子句

    5.1排序基本内容

    5.2排序的排序原则

    5.3多个排序条件

    5.4查询语句中子句的执行顺序

    5.5一点说明

    6.去除结果集重的重复记录

    6.1重复记录问题描述

    6.2去重语法:DISTINCT

    6.3DISTINCT注意事项


    零:导入SQL文件,创建演示所需的表;

    为了演示,先导入需要的逻辑表:使用一个demo.sql文件(里面是创建表的SQL语句)来创建需要的表;

    四张表结构如下:

    (1)t_dept表:部门表:

    deptno:部门编号;dname:部门名称;loc:部门所在地。

    (2)t_emp表:员工表:

    empno:员工编号(主键字段);ename:员工姓名;job:员工职务;mgr:当前员工上司的员工编号;hiredate:入职日期;sal:月薪;comm:佣金;deptno:员工所属部门编号;

    (3)t_salgrade表:工资登记表:

    grade:工资分级;losal:本等级最低工资;hisal:本等级最高工资;

    (4)t_bonus表:奖金表:

    empno:员工编号;job:职位;sal:员工基本工资;comm:佣金;


    一:基本查询

    1.最基本查询 :


    2.给【结果集】中的字段重命名:AS

    如:从t_emp表中,查询员工姓名和年收入

    不使用别名时:

    使用别名时:


    3.查询语句中子句的执行顺序


    4.数据分页:LIMIT子句

    LIMIT语句的简写形式:


    5.结果集排序:ORDER BY 子句

    5.1排序基本内容

    默认情况下,MySQL不会对结果集中的数据排序;如果我们想让结果集依照某个字段排序,数据库提供了ORDER BY字句来实现排序功能;

    演示1:没写,也就是默认ASC升序

    演示1:按sal降序

    ……………………………………………………

    5.2排序的排序原则

    ……………………………………………………

    5.3多个排序条件

    ……………………………………………………

    5.4查询语句中子句的执行顺序

    ……………………………………………………

    5.5一点说明


    6.去除结果集重的重复记录

    6.1重复记录问题描述

    第二范式要求每张表都要有主键字段,主键是不能重复的,所以数据库中是不可能有完全相同的记录的;;;但是结果集就不一样了,如果SELETC中没有选择主键字段,那么结果集中就有可能出现完全一样的记录:

    ……………………………………………………

    6.2去重语法:DISTINCT

    ……………………………………………………

    6.3DISTINCT注意事项

    如:

     

    展开全文
  • mysql分组和排序虽然 GROUP BY 和 ORDER BY 经常完成相同的工作,但它们是非常不同的。下表汇总了它们之间的差别。表中列出的第一项差别极为重要。我们经常发现用 GROUP BY 分组的数据确实是以分组顺序输出的。但...
  • SQL查询语句(查询结果排序

    千次阅读 2021-04-12 15:22:34
    SQL查询语句(查询结果排序) 1.以指定次序对查询结果排序 //显示部门10中的员工名字、职位和工资,并按照工资升序排序 select enamel, job, sal from emp where deptno = 10 order by sal asc //显示部门10中的...
  • MS SQL Server ORDER BY子句用于根据一个或多个列以升序或降序对数据进行排序。 默认情况下,一些数据库排序查询结果按升序排列。语法以下是ORDER BY子句的基本语法。SELECT column-listFROM table_name[WHERE ...
  • | 3 | 98 | David | | 4 | 79 | Bob | +-----------+--------------+-------------+ 4 rows in set (0.00 sec) 这是对MySQL GROUP BY子句中的行进行排序或选择的查询-mysql> select * from ...
  • 6 select语句6.2 where子句(条件子句)1、where的作用,是对表中行数据进行限制,符合where条件数据就被选中,不符合where条件数据就被过滤掉。select id,salary from s_emp;select id,salary from s_emp where 1=1;...
  • 您可以将field()函数与ORDER BY子句一起使用,以按值顺序排序。语法如下SELECT*FROMyourTableNameWHEREyourColumnNameIN(Value1,Value2,Value3,.......N);ORDERBYFIELD(yourColumnName,Value1,Value2,Value3,..........
  • 在本教程中,您将使用ORDER BY子句了解MySQL中的各种自然排序技术。下面让我们使用一个示例数据来开始学习自然排序技术。假设我们有一个items的表,其中包含两列:id和item_no。使用以下创建items表,如下:CREATE ...
  • Although I can group and order by on an aliased sub query, I can't use the alias in a where clause. Do I need to use a join instead?Works:SELECT entries.*,(SELECT avg(value)FROM `ratings`WHERE ratings...
  • 在SQL查询结果集中,记录的顺序是按它们在表中的顺序进行排列的,可以使用ORDER BY子句对查询结果按照给定的字段值重新进行排序排序支持升序和降序,升序按照从低到高或者从小到大,降序按照从高到低或者从大到小...
  • MySQL基础——DQL语句(排序查询) 排序查询 语法: select 查询列表 from 表 【where 筛选条件】 order by 排序列表 【asc|desc】 特点: 1.asc代表的是升序,desc代表的是降序 如果不写,默认是升序 2.order by...
  • Mysql的各个查询语句一、where子句语法:select *|字段列表 from 表名 where 表达式。where子句后面往往配合MySQL运算符一起使用(做条件判断)作用:通过限定的表达式的条件对数据进行过滤,得到我们想要的结果。1....
  • 在MySQL中,ORDER BY子句可与SELECT语句一起使用,以便按顺序对特定字段的数据进行排序;它可以按升序或降序对结果集进行排序。下面我们来带大家简单了解一下在PHP中使用MySQL的ORDER BY子句排序的基本方法,希望对...
  • 一。group by的实际意义 使用 group by 子句可以将数据...order by主要负责升序及降序的排序问题 三。举例 1.统计拥有不同运营车辆数的公交线路数量,按运营车辆数升序显示。 2.统计每一家公交公司的线路数和线.
  • mysql 查询子句

    2021-01-19 08:30:02
    order by 字段名 排序方法 排序方式: ASC(默认) : 升序 DESC:降序 从高到低进行排序 mysql> select * from m1 order by score desc; +------+------+------+------+-------+---------+ | id | name | age | sex | ...
  • MySQL中的查询子句

    2021-01-19 08:30:03
    以及这些表是如何连接的where过滤不需要的数据group by用于对具有想用列值的行进行分组having过滤掉不需要的组order by按一个或多个列,对最后结果集中的行进行排序select语句由几个组建或者说子句构成。不过在MySQL...
  • 为此,请使用having子句而不是where。让我们首先创建一个表-mysql>createtableDemoTable1338->(->Namevarchar(10),->Scoreint->);使用insert命令在表中插入一些记录。在这里,我们插入了带分数的重复...
  • 当同时含有 where 子句、group by 子句 、having 子句及聚集函数时,执行顺序如下: 执行where子句查找符合条件的数据; 使用group by 子句对数据进行分组; 对group by 子句形成的组运行聚集函数计算每一组的值; ...
  • MySQL ORDER BY 排序我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据,如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。...
  • MySQL ORDER BY子句简介

    2021-01-21 13:36:40
    要对结果集进行排序,请将ORDER BY子句添加到SELECT语句中SELECT select_list FROM table_name ORDER BY column1 [ASC|DESC],column2 [ASC|DESC],...;使用这种语法,可以在ORDER BY子句后指定要排序的一列...
  • 前言:本期咱们学习as(别名)、distinct(去重)、where子句、order by(排序)。在实际工作中会遇到各种各样的查询需求,如果只学习前面的一些基础的话,是满足不了日常工作中的需求的,大家继续加油哦! 1.数据...
  • 我们可以在PHP函数mysql_query()中使用类似ORDER BY子句的语法。该函数用于执行SQL命令,稍后再执行另一个PHP函数– mysql_fetch_array()可用于获取所有选定的数据。为了说明这一点,我们有以下示例-示例在此示例中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 142,617
精华内容 57,046
关键字:

排序子句