ORDER BY case when语句/多个
ORDER BY case when statement / Multiple
我想在我的请求中添加一个条款:
SELECT * FROM MV_immo
WHERE bien != 'Autre' AND bien != 'Indifférent'
ORDER BY case
when vendue = 'AV' then 1
when vendue = 'VPNA' then 2
when vendue = 'EC' then 3
else 6 end, Id DESC LIMIT 0,6
现在,我有一列 "position" (int),我想保留第一个顺序并添加 ORDER "position" 子句(类似这样的......):
SELECT * FROM MV_immo
WHERE bien != 'Autre' AND bien != 'Indifférent'
ORDER BY case
when vendue = 'AV' AND position ASC then 1
when vendue = 'VPNA' AND position ASC then 2
when vendue = 'EC' AND position ASC then 3
else 6 end, Id DESC LIMIT 0,6
或者也许...
SELECT * FROM MV_immo
WHERE bien != 'Autre' AND bien != 'Indifférent'
ORDER BY case
when vendue = 'AV', position ASC then 1
when vendue = 'VPNA', position ASC then 2
when vendue = 'EC', position ASC then 3
else 6 end, Id DESC LIMIT 0,6
我的目标是保持第一个订单 (ORDER BY vendue) 并添加第二个 ORDER 子句:位置。
我需要你的帮助,因为我刚开始 php 这对我来说并不简单。
我该怎么做?
如果我没理解错的话,你想要:
ORDER BY (case when vendue = 'AV' then 1
when vendue = 'VPNA' then 2
when vendue = 'EC' then 3
else 6
end),
position,
Id DESC
如果你愿意,你可以缩短它:
order by field(vendue, 'EC', 'VPNA', 'AV') desc, position, id
请注意,在 field()
调用中,这些值的顺序是 反向 。
我想在我的请求中添加一个条款:
SELECT * FROM MV_immo
WHERE bien != 'Autre' AND bien != 'Indifférent'
ORDER BY case
when vendue = 'AV' then 1
when vendue = 'VPNA' then 2
when vendue = 'EC' then 3
else 6 end, Id DESC LIMIT 0,6
现在,我有一列 "position" (int),我想保留第一个顺序并添加 ORDER "position" 子句(类似这样的......):
SELECT * FROM MV_immo
WHERE bien != 'Autre' AND bien != 'Indifférent'
ORDER BY case
when vendue = 'AV' AND position ASC then 1
when vendue = 'VPNA' AND position ASC then 2
when vendue = 'EC' AND position ASC then 3
else 6 end, Id DESC LIMIT 0,6
或者也许...
SELECT * FROM MV_immo
WHERE bien != 'Autre' AND bien != 'Indifférent'
ORDER BY case
when vendue = 'AV', position ASC then 1
when vendue = 'VPNA', position ASC then 2
when vendue = 'EC', position ASC then 3
else 6 end, Id DESC LIMIT 0,6
我的目标是保持第一个订单 (ORDER BY vendue) 并添加第二个 ORDER 子句:位置。
我需要你的帮助,因为我刚开始 php 这对我来说并不简单。
我该怎么做?
如果我没理解错的话,你想要:
ORDER BY (case when vendue = 'AV' then 1
when vendue = 'VPNA' then 2
when vendue = 'EC' then 3
else 6
end),
position,
Id DESC
如果你愿意,你可以缩短它:
order by field(vendue, 'EC', 'VPNA', 'AV') desc, position, id
请注意,在 field()
调用中,这些值的顺序是 反向 。