zoukankan      html  css  js  c++  java
  • 【MySQL】mysql使用 IN 查询取出数据排序问题(与in排序相同、不排序)

    MySQL使用 IN 查询取出数据排序问题(与in排序相同)

    今天在项目中遇到一个问题,就是做一个最近浏览的功能,但是功能做出来了,取出数据时候要用到类似这么一条带in查询的sql语句,

    select * from xxx where id in (3,2,3,12,1) 

    其中in里面的内容就是最近流浪的id,但是直接取出来他会默认用id排序,这时候取出的数据在页面显示的最新浏览的导致不是第一项,这时候如何做到不排序呢?

    我想到一个笨方法,就是用php程序排序后在插入进行查询,但是比较笨

    其实也可以这样:

    select * from xxx where id in (3,2,3,12,1) order by field(id,3,2,3,12,1)  但是这种效率低下

    还可以这样使用INSTR()函数:

    select * from xxx where id in (3,2,3,12,1) order by instr('3,2,3,12,1',concat(',',id,',')),效果如下:

    备注:

    mysql中INSTR函数的用法

    INSTR(字段名, 字符串)

    这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始)

     

    博客园-白超华

  • 相关阅读:
    操作系统——理论知识
    BEGIN-4 Fibonacci数列
    BEGIN-3 圆的面积
    面向对象三大特征之一:多态
    面向对象三大特征之二:继承
    package---包
    面向对象三大特征之一:封装
    关键字:This(上)
    无参构造与有参构造
    面向对象
  • 原文地址:https://www.cnblogs.com/bc8web/p/5885685.html
Copyright © 2011-2022 走看看