【今日推薦】:為什麼一到面試就懵逼!>>>
create table `newtable` (
`id` int(11) not null auto_increment comment '部門id' ,
`partnerid` int(11) not null comment '線下合作商id' ,
`department_name` varchar(50) character set utf8mb4 collate utf8mb4_general_ci not null comment '部門名稱' ,
`addremark` varchar(50) character set utf8mb4 collate utf8mb4_general_ci not null default '無備註' comment '新增部門備註' ,
`del` tinyint(1) not null default 1 comment '關閉部門 預設1 關閉2' ,
`delremark` varchar(50) character set utf8mb4 collate utf8mb4_general_ci not null default '無備註' comment '關閉部門備註' ,
`sort_num` int(11) not null default 0 comment '排序 數字越大越靠前' ,
primary key (`id`)
)engine=innodb
default character set=utf8mb4 collate=utf8mb4_general_ci
comment='線下合作-部門(子公司)'
auto_increment=1
row_format=compact
;$sql = "
select
p1.`id`,p1.`department_name`,p1.`del` as delstatus,p1.sort_num
from
`t_partner_department` as p1
where
order by p1.`sort_num` desc
limit
";可以看到上面的sql語句是根據欄位sort_num來排序的,但我們新增部門資訊的時候是不會設定排序值的,預設為0,所以當使用上述sql語句查詢,由於sql排序值大多為0,而在排序相等的情況下,oeder by排序的順序是隨機的,而不是固定的,於是出現了資料丟失問題。
$sql = "
select
p1.`id`,p1.`department_name`,p1.`del` as delstatus,p1.sort_num
from `t_partner_department` as p1
where
order by p1.`sort_num` desc ,p1.`id` asc
limit ";
可以看到上面sql語句的oeder by排序除了根據sort_num降序,還根據id進行公升序,如果sort_num排序值相同,那麼則以id排序值為準;反之,如果sort_num排序值不同,則先按照sort_num排序,然後再把sort_num排序值相同的按照id排序。
通過排查,如果sql查詢不使用了order by和limit,輸出的資料是完整的,但是一旦使用它們來做資料分頁顯示並排序,如果order by的排序值大多相等,則會造成順序的不確定,因為在排序值相同的情況下,order by排序的順序是隨機的而不是固定的;因此,我們可以通過增加排序條件讓其排序結果是確定的、唯一的,這樣就能夠使得排序固定,而不出現資料丟失的問題。
SQL語句order by兩個字段同時排序問題
可能對不少來說非常簡單,但是我覺得在一定程度上對我還是有些迷惑之處,下面就通過hibernate中的hql語句來介紹下這類問題的效果。首先hql語句 from topic t where t.id 2 order by t.type desc,t.number desc也可以按照下面的寫法 from...
sql語句order by和union聯合使用
今天在產看查詢結果的時候,發現乙個問題,展現未按照既定的順序排列,看sql日誌未報錯,詳細看了下sql介紹才發現問題 如果是需要對於union後的結果進行order by 那麼sql語句的寫法應該是 select from a where name union select from a where...
Jpa條件查詢組合查詢and 和 or同時用
條件查詢,各個條件之間是and並且 關係,其中地理資訊省市區縣,例如河北省,要包括其下屬所有城市,每個城市包括下屬區縣,只選擇河北省時候,要查詢的是河北省所有的,他們之間是or 或者 關係 如果寫sql,很好完成where t.id 1 and t.name hbs and t.region 河北省...