我正在使用SphinxSearch查询一些内容并拥有我想用MySQL查询的对象的id.我的ID数组根据Sphinx给出的等级排序.因此,我想像这样制作一个MySQL:
SELECT * FROM table WHERE id IN (1,17,2)
ORDER BY FIELD(id,1,17,2)
Run Code Online (Sandbox Code Playgroud)
我知道我能做到:
Table::whereIn('id', $ids)->get();
Run Code Online (Sandbox Code Playgroud)
但我无法得到我的订单.
我怎么能用Laravel以适当的方式做到这一点?
我有两个查询,第一个给我一个id数组,这是一个特定的顺序.然后我将这个ID数组传递给第二个查询,如下所示:
Operation::whereIn('id', $ids)->get();
Run Code Online (Sandbox Code Playgroud)
但是当我输出该查询的结果时,顺序已经改变,如果数组$ ids类似于(4,2,6,9),这是我想要结果的顺序,输出将给我2 ,4,6,9.我怎么能避免这种情况?
在查询db的一组id时,mysql不按照指定id的顺序提供结果.我正在使用的查询如下:
SELECT id ,title, date FROM Table WHERE id in (7,1,5,9,3)
Run Code Online (Sandbox Code Playgroud)
作为回报,提供的结果是1,3,5,7,9的顺序.
我怎样才能避免这种自动排序