我想使用 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 参数,但我不想使用它,因为它不太容易更新。
Cảm ơn
hiện hữu ORDER BY
子句中使用 CASE
,将 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
Tôi là một lập trình viên xuất sắc, rất giỏi!