我必须过滤一组我需要保持特定顺序的 id。问题是,当过滤器(在本例中是 shop.sector)排除一些记录时,ORDER BY FIELD 语法变得无效。错误消息是:“order 子句中的列 'id' 不明确”</p>
这是完整的查询:
SELECT DISTINCT `companies`.id FROM `companies`
LEFT OUTER JOIN `shops` ON shops.company_id = companies.id
WHERE (companies.id IN (96296,1,53585) AND shops.sector = 'Mobile')
ORDER BY FIELD(id, 96296,1,53585) LIMIT 0, 30;
有没有办法在不知道过滤结果的情况下保持订单?如果可能的话,我想将其保留在一个查询中。