首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL IN运算符结果集顺序

MySQL IN运算符结果集顺序
EN

Stack Overflow用户
提问于 2011-11-18 14:20:27
回答 1查看 848关注 0票数 5

在MySQL中,当使用In操作符时,我们可以要求MySQL以与IN集相同的顺序返回结果集(记录集)吗?

说明:假设我们有一个表items (item_id, item_name);

和查询:

select * from items where item_id in (1,3,5,7,2,4,6,8);

我们可以有结果集(记录集),其中记录与in运算符集的顺序相同吗?即1,3,5,7,2,4,6,8 of record_id%s

事实并非如此;MySQL似乎优化了搜索,并给出了默认顺序(与文件系统中存储的记录顺序相同)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-18 14:26:29

您可以在ORDER BY子句中使用MySQL的field函数:

代码语言:javascript
复制
select *
from items
where item_id in (1,3,5,7,2,4,6,8)
order by field(item_id, 1,3,5,7,2,4,6,8)

The field function

FIELD(str,str1,str2,str3,...)

返回字符串在str1,str2,str3,...中的索引(位置)列表。如果未找到str,则返回0。

如果FIELD()的所有参数都是字符串,则将所有参数作为字符串进行比较。如果所有参数都是数字,则将它们作为数字进行比较。否则,将参数作为double进行比较。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8178530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档