本文探讨了在Oracle和MySQL数据库中使用WHERE xx IN (..)子句时,返回结果顺序不一致的问题。在MySQL中,返回结果会按照提供的ID顺序排列,而在Oracle中则不然。文章提供了MySQL的解决方法,并详细介绍了在Oracle环境下,特别是在Mybatis框架中如何实现相同的行为。
问题描述如果查询的sql为SELECT id FROM t_user where id IN (4, 3, 2, 1);返回的值会按照id的值的顺序返回 变成 1 2 3 4MySQL解决方法SELECT id FROM t_user where id IN (4, 3, 2, 1) order by filed(id,4, 3, 2, 1);Oracle解决方法SELECT id FROM t_user where id IN (4, 3, 2, 1) order by "DECODE"