查詢in預設排序問題

2021-09-24 14:08:46 字數 607 閱讀 2704

查詢時mysql會根據in裡面的內容預設排序,並不是自己寫的順序,想保持自己原有順序可按以下處理:

第一種:order by find_in_set(id,『2,3,5,4,7』)

例:select * from *** where id in (2,3,5,4,7) order by find_in_set(id,『2,3,5,4,7』)

注意:後面的排序規則都在乙個雙引號裡面,為乙個字串。

第二種:order by substring_index(『2,3,5,4,7』,id,1)

例:select * from *** where id in (2,3,5,4,7) order by substring_index(『2,3,5,4,7』,id,1)

注意:後面的排序規則都在乙個雙引號裡面,為乙個字串。

第三種:order by field

例:select * from *** where id in (2,3,5,4,7) order by field(id,2,3,5,4,)

注意:這裡沒有雙引號。

第四種:in裡面為變數(mybatis)

… in

#這種可以關聯排序表,用排序字段重新排序查詢結果

修改sql查詢預設排序問題

sql裡好象預設都將select出來的記錄都做了排序的,現在有以下的語句 select from tablename where class 0 and id in 252,679,321,100,270 我想在select完以後,輸出的結果是未排過序 那些id是怎麼進來的就怎麼排序 252679 ...

Mysql 查詢主鍵未指定排序時的預設排序問題

跑批量任務需要分批按順序把主鍵取出來,語句如下 select id from foo.bar limit 10 offset 0 id 109 13 14 15 128 129 130 190 226 227 複製 發現雖然用主鍵去查,但結果沒有按照主鍵排序。查詢 試試 select from fo...

oracle 預設排序

oracle對無order by的語句返回的結果不進行排序,oracle此時的處理方式是按照資料的物理儲存順序來讀取資料。因為rowid是每行資料的位址,所以有時候看起來會像是使用rowid排序的。但這個順序是可能被打亂的,在表的資料被刪除後,rowid會被新插入的資料占用。所以乙個無order b...