mysql按字段顺序排序不符合我的期望

尼尔斯

我想使用FIELD参数对SQL输出进行排序,但是当我这样做时,它首先吐出不需要的结果,然后吐出我想要的结果。在结果之上,它首先吐出。如果那有意义的话 ;)

如何先吐出定义的值,然后吐出其余的值?

SQL查询:

SELECT * FROM `product_specs` WHERE itemid = '$id' ORDER BY FIELD(spec_type, 'value 1', 'value 2');

电流输出:

Value 5 
Value 6

Value 1
Value 2

想要的输出:

Value 1
Value 2 

Value 5
Value 6

我知道case参数,但是我不想使用它,因为它不那么容易更新。

谢谢

穿刺者

CASEORDER BY子句中使用a ,将0(未找到)转换999(在所有值之后),如下所示:

SELECT * 
FROM `product_specs` 
WHERE itemid = '$id' 
ORDER BY case 
  when FIELD(spec_type, 'value 1', 'value 2') = 0 then 999
  else FIELD(spec_type, 'value 1', 'value 2') end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章