第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

首先按特定字段值排序

首先按特定字段值排序

一只萌萌小番薯 2019-08-31 15:56:24
我有一個有3列的表:id | name | priority-------------------- 1 | core  |   10 2 | core  |   9 3 | other |   8 4 | board |   7 5 | board |   6 6 | core  |   4我想使用,priority但首先是那些name=core即使具有較低優(yōu)先級的行也可以對結(jié)果集進(jìn)行排序。結(jié)果應(yīng)該是這樣的id | name | priority-------------------- 6 | core  |   4 2 | core  |   9 1 | core  |   10 5 | board |   6 4 | board |   7 3 | other |   8
查看完整描述

3 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊

還有MySQL FIELD功能。


如果要對所有可能的值進(jìn)行完整排序:


SELECT id, name, priority

FROM mytable

ORDER BY FIELD(name, "core", "board", "other")

如果您只關(guān)心“核心”是第一個而其他值無關(guān)緊要:


SELECT id, name, priority

FROM mytable

ORDER BY FIELD(name, "core") DESC

如果要先按“核心”排序,則按正常排序順序排序其他字段:


SELECT id, name, priority

FROM mytable

ORDER BY FIELD(name, "core") DESC, priority

不過,這里有一些警告:


首先,我很確定這只是mysql-only功能 - 問題是標(biāo)記為mysql,但你永遠(yuǎn)不知道。


其次,注意如何FIELD()工作:它返回值的從一開始的索引 - 在這種情況下FIELD(priority, "core"),如果“core”是值,它將返回1。如果字段的值不在列表中,則返回零。DESC除非您指定所有可能的值,否則這是必要的原因。


查看完整回答
反對 回復(fù) 2019-08-31
?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗 獲得超7個贊

一般來說你可以做到


select * from your_table

order by case when name = 'core' then 1 else 2 end,

         priority 

特別是在MySQL中你也可以這樣做


select * from your_table

order by name <> 'core',

         priority 

由于MySQL中的比較的結(jié)果是要么  0或者1,您可以通過該結(jié)果進(jìn)行排序。


查看完整回答
反對 回復(fù) 2019-08-31
  • 3 回答
  • 0 關(guān)注
  • 528 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號