程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 基於mysql查詢語句的應用詳解

基於mysql查詢語句的應用詳解

編輯:MySQL綜合教程

基於mysql查詢語句的應用詳解。本站提示廣大學習愛好者:(基於mysql查詢語句的應用詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是基於mysql查詢語句的應用詳解正文


1> 查詢數據表除前三條之外的數據。

   起先我想到的是這條語句

   SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ORDER BY userid LIMIT 3) ORDER BY userid DESC 

  然則運轉的時刻會報 This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery

這個的意思是表現子查詢的時刻不支撐limit ,還有一點我就是很二了 就是查詢的時刻用not in 效力異常不高

最初的處理方法是

    CREATE VIEW view_top3_admin AS SELECT * FROM admin ORDER BY userid LIMIT 3;

先創立一個視圖 將子查詢前提放到視圖外面

  然後在用這條語句

 SELECT * FROM admin a WHERE NOT EXISTS (SELECT 1 FROM view_top3_admin b WHERE b.userid=a.userid ) ORDER BY a.userid DESC

 先來說明下這條語句  SELECT 1 FROM view_top3_admin b WHERE b.userid=a.userid  表現查詢內外面的值 只需稀有據都顯示為 1,1表現不讀取數據

如許的話就是晉升了查詢的機能,固然也能夠把 外面的1  換成 null 機能是分歧的。整條語句的意思是查詢admin表值, 斷定前提是值不在子查詢內外的。

2 > union 和 union all 的應用

先來說明下這兩個症結字在mysql數據庫中供給了UNION和UNION ALL症結字,這兩個症結字都是將成果聚集並為一個,但這二者從應用和效力下去說都有所分歧

UNION在停止表鏈接後會挑選失落反復的記載,所以在表鏈接後會對所發生的成果集停止排序運算,刪除反復的記載再前往成果。

select * from table union select * from tabl

UNION ALL只是簡略的將兩個成果歸並後就前往 假如前往的兩個成果集中有反復的數據,那末前往的成果集就會包括反復的數據了

select * from table union all select * from tabl

從效力上說,UNION ALL 要比UNION快許多,所以,假如可以確認歸並的兩個成果集中不包括反復的數據的話,那末就應用UNION 

這兩個症結字用做報表比擬多

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved