亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

按SQLIN()子句中值的順序排序

按SQLIN()子句中值的順序排序

互換的青春 2019-06-23 17:07:11
按SQLIN()子句中值的順序排序我想知道是否有其他(可能是更好的方法)按照IN()子句中的值的順序進行排序。問題是,我有兩個查詢,一個查詢獲取所有ID,另一個查詢檢索所有信息。第一個創建ID的順序,我希望第二個ID按順序排序。ID以正確的順序放在IN()子句中。所以它應該是(非常簡化的):SELECT id FROM table1 WHERE ... ORDER BY display_order, nameSELECT name, description, ... WHERE id IN ([id's from first])問題是,第二個查詢沒有按照ID被放入IN()子句的順序返回結果。我找到的一個解決方案是將所有ID放入一個具有自動遞增字段的臨時表中,然后將該字段加入到第二個查詢中。還有更好的選擇嗎?注:由于第一個查詢是“由用戶”運行的,而第二個查詢是在后臺進程中運行的,因此無法使用子查詢將2合并為1個查詢。我正在使用MySQL,但我認為讓它注意到其他DB也有哪些選項可能是有用的。
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

請參見如何獲取排序數據。

SELECT ...
  FROM ...
 WHERE zip IN (91709,92886,92807,...,91356)
   AND user.status=1ORDER 
    BY provider.package_id DESC 
     , FIELD(zip,91709,92886,92807,...,91356)LIMIT 10


查看完整回答
反對 回復 2019-06-23
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

出現在人們腦海中的解決方案有兩種:

  1. order by case id when 123 then 1 when 456 then 2 else null end asc

  2. order by instr(','||id||',',',123,456,') asc

(instr()來自甲骨文,也許你有locate()charindex()或諸如此類的東西)


查看完整回答
反對 回復 2019-06-23
  • 3 回答
  • 0 關注
  • 1417 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號