- 浏览: 208485 次
- 性别:
- 来自: 重庆
-
文章分类
最新评论
项目中需要记录用户的浏览历史,我的意见是前端直接存cookie里,可是前端说cookie内容太多,要求传递id,后端返回数据,结果就产生如下的问题。 1.据前端说,url中的数组传递是无序的(其实我纳闷,为什么) 2.传递到后端的id,使用SQL语句中的in条件,但是返回的顺序却是该id的增序,而不是前端传递的id顺序 在网上找到了解决办法,原文如下: 有个场景,一个几万条记录的表,主键是 id,我想从表中取 id 为 30,20,80,40 的几条记录。 注意,30,20,80,40,是我预期的顺序,我希望 MySQL 按这样的顺序返回记录。 于是我这样写 SQL: SELECT * FROM my_table WHERE id IN (30, 20, 80, 40); 结果是,他没有按我给的顺序返回。 怎么办? 查到了 FIELD() 函数。 FIELD(str,str1,str2,str3,...) 把 SQL 语句改写为: SELECT * FROM my_table WHERE id IN (30, 20, 80, 40) ORDER BY FIELD(id, 30, 20, 80, 40); 排序过程是: 把选出的记录的 id 在 FIELD 列表中进行查找,并返回位置,以位置作为排序依据。 这样的用法,会导致 Using filesort,是效率很低的排序方式。除非数据变化频率很低,或者有长时间的缓存,否则不建议用这样的方式排序。 把 MySQL 返回的结果,用 PHP 在内存中按 id 顺序重新排列,是个不错的优化方案。
Returns the index (position) of str in the str1, str2, str3, ... list. Returns 0 if str is not found.
发表评论
-
分页,MySQL的SQL_CALC_FOUND_ROWS
2012-12-17 16:44 1434FOUND_ROWS() 函数 ,可以在调用包含LIMIT的 ... -
使用mysql的last_insert_id() 产生自增的id
2012-12-17 15:48 1128刚才查了下last_insert_id()相关资料,找到几篇不 ... -
innodb的记录锁、gap锁、next-key锁
2012-12-17 13:45 1431相关文章见: http://dev.mysql ... -
MySQL Innodb表死锁情况分析与归纳(转载)
2012-12-14 16:22 1997案例描述 在定时脚本运行过程中,发现当 ... -
MySQL连接超时
2012-12-13 20:41 1153在负载较重的MySQL服务器上,有时你偶尔会看到一些 ... -
mysql优化索引 —— Using filesort
2012-12-11 12:13 862用Explain分析SQL语句的时候,经常发现有的语句在 ... -
mysql那点事(行锁+not null + varchar)
2012-10-12 15:08 1716一。not null vs DEAFUL value ... -
关于mysql auto_increment所带来的锁表操作
2012-09-01 14:00 1641以前内容主要是对官方文档中的意译,并加入了一些自己的理解 ... -
mysql 与unicode
2012-08-29 15:36 1739UTF8字符集(转换Unicode表示)是存储Unico ... -
深入Mysql字符集设置
2012-08-29 14:46 59105 Jan 08 深入Mysql字符集设置 ... -
关于set names
2012-08-29 14:37 839<?php$conn=mysql_connect( ... -
MYSQL索引优化和in or替换为union all
2012-08-22 17:16 4085一个文章库,里面有两个表:category和article。c ... -
mysql读写分离(PHP类)
2012-08-18 18:08 3763自己实现了php的读写 ... -
mysql分表的3种方法
2012-08-02 14:39 867当一张的数据达到几百万时,你查询一次所花的时间会变多,如 ... -
MySql BLOB类型
2012-08-02 13:42 761MySql的Bolb四种类型 MySQL中,BLOB是一个二进 ... -
MySQL 查询优化技巧
2012-07-18 20:26 790瓶颈 众所周知,几乎所有大型项目的最终效率瓶颈,都来自 ... -
mysql多表联合查询
2012-07-18 19:16 1683我在工作中天天研究zen cart的程序,那个叫人痛苦,最近比 ...
相关推荐
本文将深入探讨`ORDER BY`子句在Oracle中的排序机制,以及查询时根据`IN`条件顺序输出的方法。 首先,`ORDER BY`用于指定查询结果的排序方式,可以基于一个或多个列进行升序(ASC)或降序(DESC)排序。然而,...
当我们结合`IN()`与`ORDER BY`子句时,特别是使用`FIELD()`函数,我们可以控制查询结果按照`IN()`列表中的顺序进行排序。`FIELD()`函数在MySQL中是一个特殊函数,它返回指定值在提供的列表中出现的位置,如果值不...
然而,对象遍历的顺序问题经常让开发者感到困惑。本篇文章将详细解释JavaScript对象遍历的顺序规则,以及常用的几种遍历方法。 #### 对象遍历顺序的基本原则 在JavaScript中,遍历对象时的顺序并非完全随机,而是...
本文将深入探讨四个关键的SQL优化策略:count、表的连接顺序、条件顺序以及in和exist的使用。 首先,让我们关注`count()`函数的优化。通常认为`count(*)`统计所有行,而`count(列名)`只计算指定列的非空值。许多人...
例如,在信号检测问题中,通过比较接收到的信号与噪声的顺序统计量,可以提高信噪比估计的精度,从而改善接收机的性能。而在干扰分析中,顺序统计量可以帮助识别和量化多径衰落、频率选择性衰落等复杂无线环境下的...
for i in range(顺序表.length, 位置): # 移动元素 顺序表.array[i] = 顺序表.array[i - 1] 顺序表.array[位置] = 元素 顺序表.length += 1 ``` 2. 删除操作:删除顺序表中的一个元素,同样涉及移动元素来填补...
在这个问题中,我们关注的是栈(Stack)这一数据结构,它遵循“后进先出”(Last In First Out,简称LIFO)的原则。栈的操作主要包括入栈(Push)和出栈(Pop)。当一个元素被入栈,它会被放在栈顶;而出栈时,总是...
条件通常是一个表达式,其结果为布尔值(true或false)。如果条件为真,`{}`内的代码块将被执行;否则,如果存在else部分,那么else后的代码块会被执行。例如: ```csharp int score = 90; if (score >= 60) { ...
当使用`IN`操作符时,通常查询结果是根据表中的数据自然顺序返回的,而不是按照`IN`列表中的顺序。然而,如果你希望查询结果按照`IN`列表中的顺序排列,可以使用`ORDER BY`与`FIND_IN_SET`或`FIELD`函数结合来实现。...
条件语句是顺序语句的一种,用于根据不同的条件选择执行不同的分支。在VHDL中,常见的条件语句包括`if`语句、`case`语句等。 **`if`语句** `if`语句可以根据不同的条件执行不同的代码块。例如: ```vhdl if ...
- 结果分析:通过测试案例展示顺序栈的正确运行,分析其空间和时间效率。 - 总结与讨论:可能遇到的问题、解决方法及进一步改进的空间。 通过以上内容,我们可以深入理解顺序栈的基本概念、数据结构以及如何在...
本篇文档主要探讨了在西门子PLC环境下,如何通过顺序功能图(Sequential Function Chart,简称SFC)转化成梯形图的编程方法,并提出了采用移位寄存器思路和递增(INC)指令进行步进顺控编程的精简编程解析方法。...
- 使用`EXISTS`代替`IN`操作符可以显著加快子查询的执行速度,因为`EXISTS`只需找到第一个匹配项即可终止子查询,而`IN`则需遍历整个子查询结果集。 - 避免使用`HAVING`子句,尤其是在大结果集的情况下,因为`HAVING...
顺序栈是一种线性数据结构,它的元素按照先进后出(First In Last Out, FIFO)的原则进行存储和操作。在顺序栈中,元素存储在一块连续的内存区域,栈顶是元素添加和删除的位置。栈顶的操作包括压栈(Push)和弹栈...
顺序栈是一种常见的数据结构,它在内存中连续存储元素,具有简单易用、效率较高的特点。...在设计和实现顺序栈时,我们需要关注动态扩容、边界条件处理和效率优化等方面,以实现高效可靠的栈操作。
### 栈的出栈顺序知识点解析 #### 一、栈的基本概念 栈是一种特殊的线性数据结构,只允许在一端进行插入和删除操作。这一端称为栈顶(top),另一端称为栈底(bottom)。栈按照后进先出(Last In First Out, LIFO...
这里我们关注的是使用顺序栈来解决这个问题。顺序栈是一种数据结构,它利用数组来存储元素,遵循后进先出(LIFO)的原则,非常适合处理这种配对问题。 首先,我们要理解括号匹配的基本概念。在编程语言中,常见的...
在MySQL数据库中,`IN`子句是一种非常实用的功能,主要用于在WHERE子句中指定一个条件值的列表。如果列的值匹配列表中的任何一个值,则会选取该行。然而,在某些情况下,我们不仅需要通过ID列表筛选数据,还需要确保...