mysql通过find_in_set()函数实现where in()顺序排序
让我们来看一下基本的查询语句:
```sql
SELECT FROM table WHERE id IN ('783',' 769',' 814',' 1577',' 1769') ORDER BY FIND_IN_SET(id, '783, 769, 814, 1577, 1769');
```
这个查询语句的目的是从表中选取id在给定列表中的记录,并按照列表中的顺序进行排序。你可能会发现,查询结果中的记录顺序并不是按照你在in语句中给出的顺序。
原因在于find_in_set函数的第二个参数中的空格。MySQL在处理这个参数时,并不会自动去除其中的空格。如果你的id列表中有空格,那么find_in_set函数将无法正确地找到对应的id,从而导致排序结果不正确。
为了解决这个问题,我们只需要去除id列表中的空格即可。修改后的查询语句如下:
```sql
SELECT FROM table WHERE id IN ('783',' 769',' 814',' 1577',' 1769') ORDER BY FIND_IN_SET(id, '783,769,814,1577,1769');
```
现在,查询结果将按照你在in语句中给出的顺序进行排序。这样,我们就可以成功地使用find_in_set()函数实现where in()顺序排序了。find_in_set()函数还可以用于多条件排序,你可以尝试使用它来优化你的查询语句。
以上就是关于MySQL通过find_in_set()函数实现where in()顺序排序的全部介绍。希望这篇文章能够帮助你更好地理解和使用find_in_set()函数。如果你有任何疑问或需要进一步的帮助,请随时留言,我们会尽快回复。我们还推荐你参阅一些相关的资料和教程,以更深入地了解MySQL数据库的使用和优化。
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间