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

mysql中的field()排序函数

field() 函数:是将查询的结果集按照指定顺序排序 格式: FIELD(str,str1,str2,str3,...)...什么时候用: 想让某几个特定的字段值放在最后,用field()函数 解释: str是字段名字,字符串str1,str2,str3等等,是该字段的值 函数意思: 匹配到str1,将其放到结果集最后返回 详细解析...: 当字段值没有匹配到str1,str2或者str3的时候,按照正常排序;当匹配到这些的时候,会把没有匹配的值放到最前面,匹配到的放到后边,并且以写的顺序排序返回结果集。...场景: 数据库有字段model,代表手机型号,值有很多,和更多型号;现在根据model字段排序,查询结果集中,’‘更多型号’’ 必须放最后。...ORDER BY FIELD(model,'更多型号') sql中排序比较常见,我们常用的排序语句是这两个。

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

    MySQL 排序规则

    排序规则是一组用于比较字符集中的字符的规则。 每个 MySQL 字符集可以支持一个或者多个排序规则,用于定义每个字符的比较规则,包括是否区分大小写,是否区分重音等。...2.支持的排序规则 MySQL 使用 SHOW COLLATION 语句查看各种字符集支持的排序规则: SHOW COLLATION [LIKE 'pattern' | WHERE expr]...这是MySQL内部使用的标识符。 Default:是否为默认排序规则。如果是默认排序规则,将显示“Yes”;否则,显示“”No”。 Compiled:是否已编译排序规则。...如果没有指定排序规则,MySQL 会基于字符集设置一个默认的排序规则。...英文通常按照字母排序,而中文通常按照拼音、偏旁部首或者笔画进行排序MySQL 8.0 默认使用的排序规则 utf8mb4_0900_ai_ci 对于中文按照偏旁部首进行排序

    43620

    mysql】order by排序

    排序数据 1. 排序规则 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 使用 ORDER BY 对查询到的数据进行排序操作。...使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELECT语句的结尾。 2....单列排序 按照salary从高到低的顺序显示员工信息 SELECT employee_id,last_name,salary FROM employees ORDER BY salary DESC; [...BY department_id DESC,salary ASC; [在这里插入图片描述] 可以使用不在SELECT列表中的列排序。...在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序

    2.4K60

    Java | 字段(Field

    概述 字段(Field),是 Java 编程语言中类的一个成员,主要用来存储对象的状态(如同某些编程语言中的变量),所以有时也可称为成员字段或成员变量。...public static final String CONSTANT_FIELD = "CONSTANT_FIELD:\n这是在 MyField 类中的字符串常量字段。"...this.name = name; } } /* 输出结果: CONSTANT_FIELD: 这是在 MyField 类中的字符串常量字段。...如前面示例中的 CONSTANT_FIELD 字段。 静态字段(Static Field):声明为 static 的字段。常量字段和类变量都属于静态字段。...非静态字段(Non-Static Field):没有声明为 static 的字段。又可称为实例变量。 成员变量(Member Variable):除常量字段外的其他所有字段。

    2.6K10

    MySQL ORDER BY IF() 条件排序

    就是在对species排序的时候,优先级是判断species是否为snake,如果是,返回0,如果不是,返回1....随后,先进行species隐藏属性的排序,隐藏属性拍完以后,再进行剩余species的排序 也就是说,你可以把这个 if 语句,看成是一个独立的column 那如果我们想把snake的这一行放在查询结果尾部呢...正如上面一段说的,你可以把if 语句看成是独立的column,所以你也可以为他添加排序条件ASC或者DESC,当然默认是ASC,可以不写。...这样,查询就等于第一步是查询隐藏属性0,1,然后进行DESC排序,因为species=snake的返回值是0,所以进行倒序排列时,就被排在了最后 以此类推,你在进行隐藏属性优先排序的同时,对于剩下的排序...,你也可以另外进行ASC或者DESC的排序,就不截图了。

    3.7K50

    Mysql 索引与排序

    image.png sql 中 order by 排序可能发生2种情况: 1)对应覆盖索引,直接在索引上查询时,就是有序的,不需要另外处理排序 2)没有使用到索引,先取出数据,形成临时表做 file sort...示例目标 取出来的数据本身就是有序的,利用索引来排序 示例分析 例如 有一个商品表,现在想取出某个分类下的商品,按照价格排序 sql : ... where category_id=N order...by price 目前只对分类ID做了索引,这时 order by 操作必然进行了单独的排序操作 使用 explain 分析这个sql语句时,会看到: Extra Using where;Using...现在添加一个索引,category_id和price 的联合索引 再使用 explain 分析这个sql语句时,会看到: Extra Using where 可以看到没再使用filesort,这样就利用了索引来排序

    2K60

    Mysql order by排序优化

    加大max_length_for_sort_data参数的设置 在MySQL中,排序算法分为两种,一是只加载排序字段到内存,排序完成后再到表中取其他字段,二是加载所有需要的字段到内存,显然第二种节省了IO...所以,如果有充足的内存让MySQL存放须要返回的非排序字段,就可以加大这个参数的值来让MySQL选择第二种排序算法 2....去掉不必要的返回字段 当内存不是很充裕时,不能简单地通过强行加大上面的参数来强迫MySQL去使用高效算法,否则可能会造成MySQL不得不将数据分成很多段,然后进行排序,这样可能会得不偿失 此时就须要去掉不必要的返回字段...增大sort_buffer_size参数设置 增大sort_buffer_size并不是为了让 MySQL选择第二种排序算法,而是为了让MySQL尽量减少在排序过程中对须要排序的数据进行分段,因为分段会造成...MySQL不得不使用临时表来进行交换排序

    2.3K50

    Mysql 排序分页混乱

    数据特征: 排序字段,重复率极高,仅有2个值。 数据库版本: 现象二 相同数据,在以下数据库版本,均排序分页正常。...8.0.11 5.6.46 第一页: SELECT * FROM city order by FIELD(state,'ENABLE','DISABLE') LIMIT 0,10; 第二页: SELECT...* FROM city order by FIELD(state,'ENABLE','DISABLE') LIMIT 10,10; 解决方案 关于现象一,官网给出以下解释: If multiple...当有多个重复值的时候,mysql server返回的是任意顺序。具体的顺序依赖执行计划。 关于现象二,暂没合理的解释。 相同的数据库版本,类似的重复数据,分页排序就是正常的。...相同的数据,不同的数据库版本,分页排序也是正常的。 参考 8.2.1.17 LIMIT Query Optimization

    3.4K20
    领券