MySQL必知必會-5去重,擷取和排序
阿新 • • 發佈:2019-01-28
去重
使用DISTINCT,DISTINCT告訴MySQL只返回不同(唯一)的列的行。
如果使用DISTINCT關鍵字,它必須放在列的前面。 不能部分使用DISTINCT,DISTINCT關鍵字應用於所有列而不僅是前置它的列,如果給出兩個列,除非指定的兩個列都不同,否則所有行都將被檢索出來。(如果指定兩個列,那麼這兩個列必須同時不同,約束兩個列唯一)SELECT DISTINCT vend_id FROM products;
SELECT DISTINCT vend_id, prod_id FROM products; //約束兩個列唯一
擷取
使用LIMIT擷取
LIMIT 3,5 含義從行4開始的5行,也可使用LIMIT 5 OFFSET 3意為從行4開始取5行,就像LIMIT 3,5一樣。
注意MySQL的行序號是從0開始,所以1是指第2行。
SELECT * FROM products LIMIT 3,4;
SELECT * FROM products LIMIT 4 OFFSET 3; //和上面的SQL一樣,注意3和4出現的位置不同。
排序檢索資料
使用order by子句,order by子句取一個或多個的名字,據此對輸出進行排序。
SELECT prod_name FROM products ORDER BY prod_name;
SELECT prod_id FROM products ORDER BY prod_name
SELECT prod_name FROM products ORDER BY prod_name, prod_price;
SELECT
prod_id,
prod_price,
prod_name
FROM
products
ORDER BY
prod_price DESC;
SELECT
prod_id,
prod_price,
prod_name
FROM
products
ORDER BY
prod_price DESC,
prod_name ASC;
SELECT
prod_price
FROM
products
ORDER BY
prod_price DESC
LIMIT 1;