我们在用mysql查询in操作的时候,你会发现返回的数据,并不是我们想要的排序。如果情况是这样的话,那么在取回来之后还要通过foreach重新的在排序。这样即显得笨拙,也造成不必要的数据运行。这时,我们就在想如果在查询的时候,返回来的结果集就是我们想要的排序方式,那不是更好吗?其实,mysql已经为我们准备好了,只是我们平时用的少,不知道此方法而已。那么,下面就看看,mysql中的in操作,返回结果集按顺序输出。
sql语句:SELECT * FROM
yii_user WHERE id IN (20, 16, 21, 15, 17, 22, 18, 23)
处理的sql语句:SELECT * FROM
yii_user WHERE id IN (20, 16, 21, 15, 17, 22, 18, 23) ORDER BY
field(id, 20, 16, 21, 15, 17, 22, 18, 23);
按照上面处理过的sql语句查询的话,那么返回的结果集就是我们自己定义的排序方式输出,id会按20, 16, 21, 15, 17, 22, 18, 23排序的输出。