- 浏览: 203094 次
- 性别:
- 来自: 重庆
文章分类
最新评论
项目中需要记录用户的浏览历史,我的意见是前端直接存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 1346FOUND_ROWS() 函数 ,可以在调用包含LIMIT的 ... -
使用mysql的last_insert_id() 产生自增的id
2012-12-17 15:48 1085刚才查了下last_insert_id()相关资料,找到几篇不 ... -
innodb的记录锁、gap锁、next-key锁
2012-12-17 13:45 1389相关文章见: http://dev.mysql ... -
MySQL Innodb表死锁情况分析与归纳(转载)
2012-12-14 16:22 1940案例描述 在定时脚本运行过程中,发现当 ... -
MySQL连接超时
2012-12-13 20:41 1113在负载较重的MySQL服务器上,有时你偶尔会看到一些 ... -
mysql优化索引 —— Using filesort
2012-12-11 12:13 820用Explain分析SQL语句的时候,经常发现有的语句在 ... -
mysql那点事(行锁+not null + varchar)
2012-10-12 15:08 1653一。not null vs DEAFUL value ... -
关于mysql auto_increment所带来的锁表操作
2012-09-01 14:00 1607以前内容主要是对官方文档中的意译,并加入了一些自己的理解 ... -
mysql 与unicode
2012-08-29 15:36 1682UTF8字符集(转换Unicode表示)是存储Unico ... -
深入Mysql字符集设置
2012-08-29 14:46 56105 Jan 08 深入Mysql字符集设置 ... -
关于set names
2012-08-29 14:37 809<?php$conn=mysql_connect( ... -
MYSQL索引优化和in or替换为union all
2012-08-22 17:16 4043一个文章库,里面有两个表:category和article。c ... -
mysql读写分离(PHP类)
2012-08-18 18:08 3609自己实现了php的读写 ... -
mysql分表的3种方法
2012-08-02 14:39 831当一张的数据达到几百万时,你查询一次所花的时间会变多,如 ... -
MySql BLOB类型
2012-08-02 13:42 711MySql的Bolb四种类型 MySQL中,BLOB是一个二进 ... -
MySQL 查询优化技巧
2012-07-18 20:26 756瓶颈 众所周知,几乎所有大型项目的最终效率瓶颈,都来自 ... -
mysql多表联合查询
2012-07-18 19:16 1638我在工作中天天研究zen cart的程序,那个叫人痛苦,最近比 ...
相关推荐
主要介绍了Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出的方法,其中ORDER BY的排序结果需要注意其是否稳定,需要的朋友可以参考下
主要介绍了SQL优化之针对count、表的连接顺序、条件顺序、in及exist的优化,有助于读者深入理解Oracle的运行效率及优化策略,需要的朋友可以参考下
代码如下:Select * FROM table1 Where (ID IN (3,5,1,4,2)) 代码如下:Select * FROM table1 Where (ID IN (3,5,1,4,2))如果In后面的条件都是数字,那MSSQL排序应该为 代码如下:Select * FROM ...
SQL Select语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;...
5.2 多态存在的三个必要条件 5.3 TestPolymoph.as —— 多态的应用,体会多态带来的好处 5.4 TestPolymoph 内存分析 5.5 多态的好处 5.6 抽象类的概念 5.7 对象转型(Casting) 6. 接口(Interface) 6.1 接口的概念...
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal( ),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四...
已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按...
WHERE子句中的条件可以是一个包含等号或不等号的条件表达式,也可以是一个含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比较运算符的条件式,还可以是由单一的条件表达通过逻辑运算符组合成复合条件。 3)ORDER BY...
5.3 缺省构造器 5.4 this关键字 5.4.1 在构造器中调用构造器 5.4.2 static的含义 5.5 清理:终结处理和垃圾回收 5.5.1 finalize()的用途何在 5.5.2 你必须实施清理 5.5.3 终结条件 5.5.4 垃圾回收器如何工作 5.6 ...
对于Where条件的顺序,过滤到最大查询记录数量的条件必须写在Where条件的结尾处。 Where条件中涉及到使用复杂函数判定的必须注意要写到Where条件的最前面 3.索引方面 记录数少的表保留有主键索引就可以了,...
输入- indata - 一维时间序列(1 x N 点) - 延迟 - 有序模式中点之间的延迟(延迟 = 1 表示连续点) - order - 序数模式的顺序(顺序 + 1 是序数模式中的点数) - windowSize - 滑动窗口的大小(= 滑动窗口内的...
计算机程序设计java语言数字排序问题 题目:已知数据文件IN10.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上...
问题5-12:糊涂窗口综合症产生的条件是什么?是否只有在接收方才产生这种症状? 问题5-13:能否更详细些讨论一下糊涂窗口综合症及其解决方法? 问题5-14:为什么TCP在建立连接时不能每次都选择相同的、固定的初始...
C#中的逻辑编程 内容 项目状态 项目状态:开发中 :warning: 关于该项目 该项目旨在向读者介绍使用C进行逻辑编程的基础知识。... 条件结构:可比较表达式,逻辑表达式,简单条件结构,复合条件结构和链接条件结构。
5. 注意where字句写法,必须考虑语句顺序,应该根据索引顺序、范围大小来确定条件子句的前后顺序尽可能的让字段顺序与索引顺序相一致,范围从大到小(左到右)。 6. 不要在where子句中的“=”左边进行函数、算术运算或...
在使用in条件时,先执行in条件子句,此时由于B表先查,A表后查,B表的数据集应小于A表的数据集。 B表数据集小于A表数据集时,用in优于exists。 示例2: 在使用exists条件时,先执行外层的查询,此时由于A表先查,B...
1. 理解高斯顺序消去法; 2. 理解主元高斯消去法在求解精度上的优点; 3. 完成列主元消去法的程序; 4. 会用系统内置命令求解有唯一解的线性方程组; 【试验方法与步骤】 一 、 回答下面的问题 1. 什么是线性方程组...
在搜索过程中,这些项用于决定什么样的文档能匹配查询条件。例如,如果这句话“For example, if this sentence were indexed into a field”被索引到一个域(Field)中(假设域类型为Field.Text),相应产生的项可能...
下面两个函数的使用和FIND_IN_SET一样,使用时只需要把FIND_IN_SET换成FIND_PART_IN_SET或FIND_ALL_PART_IN_SET 例如某字段里是为1,2,3,4,5 使用方法: 第一种,传入1,3,6 可以查出来 select * from XXX where FIND...