使用场景:
在MySQL中,想按照in数组内的给定字段顺序,返回查询结果
使用格式:
order by field(dest_field, dest_field_value1, dest_field_value2, dest_field_value3...)
注意:in(?) 和 field(?) 数组内的指定字段值顺序可一样,可不一样,最终是按照 field(?) 数组内的指定字段值顺序进行排序的
使用示例:
已知用户列表:users := []string{'user1', 'user2', 'user3'}
,想按该列表中用户的顺序查询并返回对应数据库中的信息。
select id, name, age, sex from user where name in (?) order by field(name, ?);
将users中的元素打散后,填入参数即可。等价的效果如下:
select id, name, age, sex from user where name in ('user1', 'user2', 'user3') order by field(name, 'user1', 'user2', 'user3');