instr 排序错误用 field 代替
instr 排序失效:
SELECT * FROM `myguests` WHERE id IN (16,1,4,19,17,20) ORDER BY INSTR('16,1,4,19,17,20',id);
得到的排序结果是:1、16、4、19、27、20

field 排序正确 :
SELECT * FROM `myguests` WHERE id IN (16,1,4,19,17,20) ORDER BY FIELD(id,16,1,4,19,17,20);
得到的排序结果正确:16、1、4、19、17、20

本文探讨了在SQL查询中,使用INSTR和FIELD两个函数进行排序时的不同效果。当尝试根据特定顺序排序ID时,INSTR函数导致排序错误,而FIELD函数则能正确实现预期的排序。示例展示了两种方法在处理相同数据集时的差异,强调了在SQL排序操作中选择合适函数的重要性。
9007

被折叠的 条评论
为什么被折叠?



