@H_404_1@我使用以下sql从MySQL数据库中选择记录:
@H_404_1@
SELECT * FROM cms_product WHERE id IN (3,22,1);
@H_404_1@结果顺序等于“ORDER BY id ASC”,因此在示例中返回记录1,3,22.如何以IN子句中输入的确切方式对它们进行排序?订购为3,1?谢谢.最佳答案
众多选择 –
@H_404_1@案件:
@H_404_1@首选,是ANSI-92,它可以移植到其他数据库.
@H_404_1@
> FIELD
> FIND_IN_SET
SELECT *
FROM cms_product
WHERE id IN (3,1)
ORDER BY CASE id
WHEN 3 THEN 1
WHEN 22 THEN 2
WHEN 1 THEN 3
END
@H_404_1@FIND_IN_SET:
@H_404_1@
SELECT *
FROM cms_product
WHERE id IN (3,1)
ORDER BY FIND_IN_SET(id,'3,1');
@H_404_1@领域:
@H_404_1@
SELECT *
FROM cms_product
WHERE id IN (3,1)
ORDER BY FIELD(id,1);
@H_404_1@参考:
@H_404_1@> CASE> FIELD
> FIND_IN_SET