我需要一個mysql查詢,它將選擇「name」或「quantity」列中包含「joe」的所有行。它需要之間的「名」與「量」的欄目,這意味着我們將得到數量與每名corressponding如下面的圖像的最大值不同: 用SQL中的distinct和max查詢
決賽桌也應由排序id降序。 請告訴我知道用mysql查詢的方式。 感謝
我需要一個mysql查詢,它將選擇「name」或「quantity」列中包含「joe」的所有行。它需要之間的「名」與「量」的欄目,這意味着我們將得到數量與每名corressponding如下面的圖像的最大值不同: 用SQL中的distinct和max查詢
決賽桌也應由排序id降序。 請告訴我知道用mysql查詢的方式。 感謝
最簡單的方法是使用not exists
select * from table_name t1
where
not exists (
select 1 from table_name t2 where t1.name= t2.name and t1.quantity < t2.quantity
);
另一個變化是使用left join
select t1.* from table_name t1
left join table_name t2 on t2.name = t1.name
and t1.quantity < t2.quantity
where t2.id is null;
而最快的方式是...(選項3) – Strawberry 2014-12-04 08:28:12
那麼左邊的連接性能好於存在索引列時的情況。優化器可以針對一小部分數據進行優化,而當表格相對較小且編制索引時,它們之間沒有區別。如果你知道更快的方式,爲什麼不把它作爲答案而不是評論? – 2014-12-04 08:38:28
因爲在手機上打字很乏味,所以我想你可能知道我所指的方法。畢竟它已經在手冊中涵蓋了。 – Strawberry 2014-12-04 08:46:44
可能下一個字符串出現在整數列什麼情況? – Strawberry 2014-12-04 08:26:31