You are here: 首頁 文章分類選單 資料庫心得

飛朵啦學習手札

本網站建議使用Firefox2.0以上,或是使用Goole瀏覽器來瀏覽,並使用1024x768解析度來觀看.

資料庫管理

SQL的執行順序

E-mail 列印 PDF
這邊做一下備註
SELECT 陳述式的邏輯處理順序

下列步驟顯示 SELECT 陳述式的邏輯處理順序或繫結順序。這個順序決定何時將某一個步驟中定義的物件提供給後續步驟的子句使用。例如,如果查詢處理器可以繫結至 (存取) FROM 子句中定義的資料表或檢視表,則這些物件及其資料行就可供所有後續步驟使用。 反之,由於 SELECT 子句是步驟 8,因此之前的子句無法參考該子句中定義的任何資料行別名或衍生資料行。不過,後續子句 (例如 ORDER BY 子句) 可以參考這些資料行別名或衍生資料行。請注意,實際執行的陳述式是由查詢處理序所決定,因此順序可能與此清單有所不同。

  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. WITH CUBE 或 WITH ROLLUP
  7. HAVING
  8. SELECT
  9. DISTINCT
  10. ORDER BY
  11. TOP

最近更新 ( 週三, 16 七月 2014 11:04 )
 
 

[mysql] SELECT 查詢 產生一個自動遞增的序號欄位 做批次更新

E-mail 列印 PDF

根據

[轉][MySQL] 如何用 SELECT 查詢 產生一個自動遞增的序號欄位

[轉][MYSQL]將查詢結果更新至資料表 UPDATE for SELECT

的範例來綜合寫出

  1. UPDATE
  2. pay AS A,
  3. (SELECT @s:=@s+1 as seq, id FROM pay, (SELECT @s:= 0) AS s ORDER BY  `pay`.`id` asc ) AS B
  4. SET A.`seq`=B.`seq`
  5. WHERE A.id=B.id
 
 

[轉][MySQL] 如何用 SELECT 查詢 產生一個自動遞增的序號欄位

E-mail 列印 PDF

本文轉自:i丹尼

 

因為要跑活動績分排行,而這個排行又是以某項欄位總和做排序 給績分,所以希望撈出的資料 在 SUM, GROUP 及 ORDER 後,還可以再依序給一個排行績分的欄位。

因為是持續三週的活動,且每天都有每日的績分排行(前20名的績分依序就是20,19,18...到1分),每週還有週排行,週排行就是將每個Player該週的績分加總排序即可。

所以用了一個活動資料表,來記錄每個玩家每日的績分:

 

[轉][MYSQL]將查詢結果更新至資料表 UPDATE for SELECT

E-mail 列印 PDF

轉貼自:http://idanny.blogspot.tw/2013/09/mysql-select.html

今天又學到一個 MySQL 新方法,原本就在找利用 SELECT 的結果 UPDATE 至資料表的方法,最後終於在 MySQL 官網中的回應裡找到了

  1. UPDATE
  2. `t1` AS A,
  3. (SELECT `b1`, COUNT(*) AS `total` FROM `t2` GROUP BY `c1`) AS B
  4. SET A.`a2`=B.`total`
  5. WHERE A.`a1`=B.`a1`


 

關於分頁的別種寫法

E-mail 列印 PDF

分頁原本都會用

SELECT COUNT(*) FROM ... WHERE ....

SELECT ... FROM ... WHERE LIMIT ...

MYSQL的話可以用SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS ... FROM ... WHERE LIMIT ...

在得到数据后,通过FOUND_ROWS()可以得到不带LIMIT的结果数:

SELECT FOUND_ROWS()

但聽說效率比較慢http://hi.baidu.com/thinkinginlamp/item/b122fdaea5ba23f614329b14

-------------------------------------------------------------------------

至於orcal或postgre可以用 COUNT(*) OVER()來組成分頁

SELECT *,COUNT(*) OVER() AS FULLROWCOUNT FROM ... WHERE ... LIMIT

 

 

最近更新 ( 週四, 04 十月 2012 14:35 )
 
更多文章...
第 1 頁, 共 2 頁