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

     

    博客园-白超华

  • 相关阅读:
    第四次实验报告
    第三次实验报告
    第五章 循环结构课后反思
    第二次实验报告
    第一次实验报告
    第一次作业
    第九章实验报告(构造数据类型)
    第八章实验报告(指针实验)
    第七章实验报告(数组实验)
    第六章 函数和宏定义实验(2)
  • 原文地址:https://www.cnblogs.com/bc8web/p/5885685.html
Copyright © 2011-2022 走看看