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开始)

     

    博客园-白超华

  • 相关阅读:
    ajax异步更新的理解
    Java 中的匿名内部类
    Java 中的方法内部类
    Java 中的静态内部类
    Java 中的成员内部类
    Java 中的 static 使用之静态方法(转)
    构造方法
    成员变量与局部变量的区别
    script标签属性sync和defer
    jsonp原理
  • 原文地址:https://www.cnblogs.com/bc8web/p/5885685.html
Copyright © 2011-2022 走看看