有时候我们在后台选择了一系列的id,我们想安装填写id的顺序进行排序,那么就需要下面的order by方法,测试通过
<!--NEWSZW_HZH_BEGIN-->表结构如下:
mysql> select * from test;
+----+-------+
| id | name |
+----+-------+
| 1 | test1 |
| 2 | test2 |
| 3 | test3 |
| 4 | test4 |
| 5 | test5 |
+----+-------+
执行以下SQL:
mysql> select * from test where id in(3,1,5);
+----+-------+
| id | name |
+----+-------+
| 1 | test1 |
| 3 | test3 |
| 5 | test5 |
+----+-------+
3 rows in set (0.00 sec)
这个select在mysql中得结果会自动按照id升序排列,
但是我想执行"select * from test where id in(3,1,5);"的结果按照in中得条件排序,即:3,1,5,
想得到的结果如下:
id name
3 test3
1 test1
5 test5
请问在这样的SQL在Mysql中怎么写?
网上查到sqlserver中可以用order by charindex解决,但是没看到Mysql怎么解决??请高手帮忙,谢
谢!
select * from a order by substring_index('3,1,2',id,1);
试下这个good,ls正解。
order by find_in_set(id,'3,1,5')
谢谢,经测试order by substring_index和order by find_in_set都可以 <!--NEWSZW_HZH_END-->
mysql> select * from test;
+----+-------+
| id | name |
+----+-------+
| 1 | test1 |
| 2 | test2 |
| 3 | test3 |
| 4 | test4 |
| 5 | test5 |
+----+-------+
执行以下SQL:
mysql> select * from test where id in(3,1,5);
+----+-------+
| id | name |
+----+-------+
| 1 | test1 |
| 3 | test3 |
| 5 | test5 |
+----+-------+
3 rows in set (0.00 sec)
这个select在mysql中得结果会自动按照id升序排列,
但是我想执行"select * from test where id in(3,1,5);"的结果按照in中得条件排序,即:3,1,5,
想得到的结果如下:
id name
3 test3
1 test1
5 test5
请问在这样的SQL在Mysql中怎么写?
网上查到sqlserver中可以用order by charindex解决,但是没看到Mysql怎么解决??请高手帮忙,谢
谢!
select * from a order by substring_index('3,1,2',id,1);
试下这个good,ls正解。
order by find_in_set(id,'3,1,5')
谢谢,经测试order by substring_index和order by find_in_set都可以 <!--NEWSZW_HZH_END-->
相关推荐
2. **Mysql select in 按id排序实现方法** 3. **MYSQL 关于两个经纬度之间的距离由近及远排序** 4. **mysql如何根据汉字首字母排序** 5. **MySQL查询优化:连接查询排序浅谈** 6. **MySQL查询优化:连接查询排序limit...
在这个例子中,`FIELD(id, 3, 6, 9, 1, 2, 5, 8, 7)`会返回每一行`id`值在其列表中的位置,从而实现按指定顺序排序的目的。 #### `FIELD()`函数详解 - **基本语法**: ```sql FIELD(column_name, value1, value2,...
利用上面的特点,可以利用mysql实现一种独特的排序; 首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。 select id, (@...
这是实现按in查询排序的核心部分。`INSTR`函数用于查找字符串的位置。在这里,它被用来确定每个匹配到的ID在其原始列表中的位置,从而实现按照ID在原始列表中的顺序进行排序。 #### 4. 工作原理 当执行上述查询时,...
例如,在进行复杂的分组排序时,MySQL并没有提供类似于Oracle中的`OVER()`窗口函数,这使得实现某些复杂的数据分析变得较为棘手。本文将详细介绍如何在MySQL中实现类似Oracle中`row_number() over (partition by)`的...
在MySQL数据库中,`SELECT`语句用于从一个或多个表中检索数据,而`ORDER BY`子句则用于对查询结果进行排序。本篇文章将深入探讨如何在MySQL中使用`SELECT`语句配合`ORDER BY`进行数据的排序操作。 `SELECT`语句的...
它允许用户按需加载数据,而不是一次性获取所有记录,从而提高了用户体验并降低了服务器负载。以下是对分页实现的详细说明: 一、基础概念 分页是将数据库查询结果分割成多个页面,每次请求只返回一部分数据,而...
本方案主要探讨如何在MySQL中实现一个可靠的序列/ID生成策略,以满足并发处理的需求。 首先,让我们关注`mysql_sequence.sql`文件。这个SQL脚本通常会包含创建序列的表结构以及相关的操作,例如插入、更新或获取下...
总结来说,这个示例展示了如何利用MySQL的`IN()`和`FIELD()`函数来根据指定的ID顺序排序查询结果,这对于需要个性化排序或用户定制顺序的场景非常有用。然而,为了性能考虑,对于大数据集,可能需要探索其他优化策略...
$range_result = mysql_query("SELECT MAX(`id`) AS max_id, MIN(`id`) AS min_id FROM `table`"); $range_row = mysql_fetch_object($range_result); $random = mt_rand($range_row->min_id, $range_row->max_id); ...
在本文中,我们将深入探讨MySQL的使用方法,通过具体的例子来帮助你理解和掌握其核心概念。 1. 安装与配置MySQL 在开始使用MySQL之前,你需要在你的操作系统上安装MySQL服务器。这通常可以通过下载并运行安装程序...
这里我们先将`IN`子句中的数值转换成字符串,并在每个数值前后加上逗号,然后在`ORDER BY`子句中使用`CHARINDEX`来确定每个`ID`在新字符串中的位置,从而实现排序: ```sql SELECT * FROM table1 WHERE (ID IN (3...
在MySQL中,`UNION ALL` 用于合并多个`SELECT`语句的结果集,而这里的重点是如何在合并结果后进行排序。在给定的场景中,我们有一个文章数据表,其中文章的状态通过`PROMOTE_STATUS`字段表示,分别对应0(待发布)、...
除了`ORDER BY FIELD()`,MySQL还提供了其他排序相关的函数,如`CASE`表达式,也可以实现类似的功能。但`ORDER BY FIELD()`在处理简单的自定义排序时更加直观和简洁。 总的来说,掌握`ORDER BY FIELD()`函数的使用...
2. 如果多个字段需要排序,可以链式调用这些方法,例如:`.orderBy("id").orderByDesc("age")`,这将先按id升序,再按age降序排序。 3. 这些方法并不影响原始数据表的结构,它们只是在查询时改变了返回结果的顺序。 ...
在 `SELECT` 语句中,可以通过 `ORDER BY` 子句来实现对查询结果的排序功能。本篇文章将详细介绍如何在 MySQL 中使用 `ORDER BY` 进行数据排序,并通过实例进行说明。 #### 基本语法 `ORDER BY` 子句的基本语法...
### MySQL大数据量分页查询方法及其优化 在处理大规模数据集时,MySQL的分页查询是非常常见的需求之一。为了提高查询效率,减少响应时间和资源消耗,开发者需要掌握多种不同的分页查询方法及其优化技巧。本文将详细...
MySQL 实现无限级分类是一种常见的数据库设计挑战,特别是在需要构建层级结构的数据模型时,例如网站导航菜单、组织架构或商品分类。以下将详细介绍三种常见的无限级分类实现方法,并分析其优缺点。 ### 1. 递归...
### MySQL SELECT 语句去除某个字段的重复信息 在MySQL数据库操作中,经常会遇到需要去除某个字段重复信息的情况。本文将详细介绍如何通过SQL查询来实现这一功能,并对具体语句进行解析,帮助读者理解其中的工作...