Mysql order by字段给出的顺序不正确
提供者id可以是1,2,3Mysql order by字段给出的顺序不正确,mysql,Mysql,提供者id可以是1,2,3 SELECT * FROM `news` order by field (provider_id, 1,3) 我希望它先显示provider_id=1的记录,然后显示3,然后显示provider_id=2的记录 在实际中,它首先显示提供程序_id=2的所有记录,然后才显示1、3 当我只想首先列出1和3,然后列出其余的提供者id时,如何编写正确的查询?为什么会这样 字段返回列表中与第一个参数的值匹配的索引,如果未找到该索引,则返回0,因此您的排序依据显然将使用提供者i
SELECT * FROM `news` order by field (provider_id, 1,3)
我希望它先显示provider_id=1的记录,然后显示3,然后显示provider_id=2的记录
在实际中,它首先显示提供程序_id=2的所有记录,然后才显示1、3
当我只想首先列出1和3,然后列出其余的提供者id时,如何编写正确的查询?为什么会这样
字段
返回列表中与第一个参数的值匹配的索引,如果未找到该索引,则返回0,因此您的排序依据
显然将使用提供者id
对行进行排序,而不是先排序1或3
要测试它,只需尝试添加一个值为字段(provider\u id,1,3)
的列,您将看到:
SELECT *,field (provider_id, 1,3) FROM `news` order by field (provider_id, 1,3)
您可以简单地添加DESC
(如果您希望先使用provider_id=1,则可以交换1和3):
SELECT * FROM `news` order by field (provider_id, 3, 1) DESC