請我想從表中選擇,在某一特定領域具有最小值數據的數據,我已經試過這樣:MYSQL如何選擇其中字段具有最小值
SELECT * FROM pieces where min(price)
我對MySQL不好,請幫忙嗎?謝謝
請我想從表中選擇,在某一特定領域具有最小值數據的數據,我已經試過這樣:MYSQL如何選擇其中字段具有最小值
SELECT * FROM pieces where min(price)
我對MySQL不好,請幫忙嗎?謝謝
這會給你所有記錄上的最低價格的結果。
SELECT *
FROM pieces
WHERE price = (SELECT MIN(price) FROM pieces)
不客氣:D –
這可能會很慢。 – abenevaut
這是我會怎麼做(假設我理解這個問題)
SELECT * FROM pieces ORDER BY price ASC LIMIT 1
如果你想選擇多行,每個人可能有相同的價格(這是最低限度),那麼@ JohnWoo的答案應該足夠了。
基本上這裏我們只是按照ASCending順序(增加)中的價格對結果進行排序並取出結果的第一行。
這也適用於:
SELECT
pieces.*
FROM
pieces inner join (select min(price) as minprice from pieces) mn
on pieces.price = mn.minprice
(因爲這個版本不具備其中一個子查詢條件,它可以被使用,如果你需要更新表,但如果你只需要選擇我將reccommend使用吳宇森溶液)
它看起來像它可以在視圖中重用 –
使用HAVING MIN(...)
喜歡的東西:
SELECT MIN(price) AS price, pricegroup
FROM articles_prices
WHERE articleID=10
GROUP BY pricegroup
HAVING MIN(price) > 0;
事實上,取決於你想要得到什麼: - 就在最小值:
SELECT MIN(price) FROM pieces
一個表(倍數行)蒙山的最小值:是因爲吳宇森上面說的。
但是,如果可以與相同最小值不同行,最好是從另一列命令他們,因爲畢竟以後你需要做的(由吳宇森的answere開始):
SELECT * FROM件WHERE 價格=(SELECT MIN(價格)FROM件) ORDER BY股票ASC
,使其更簡單
SELECT *, MIN(價格)FROM督促LIMIT 1
它實際上不會。 *將顯示隨機值,不一定來自與該分鐘關聯的行。 –
完全同意Laurentiu L.在這裏:大多數其他DBMS(然後是MySQL)不會允許您在沒有正確的GROUP BY子句的情況下運行這樣的查詢。 –
這將選擇一個隨機行來最小化值,而不是它所要求的! –
這個問題可以有多種解釋,你可以給例如記錄與結果的所有記錄? –