[SQL ] 分組最新並排序和取得表單名稱的問題
我用的是 MySQL 客戶端版本: 5.0.51a
先問短一點的
SELECT files FROM $id;
$id >> 這個是從前端傳進來的 決定要在哪個資料表拿資料
那我要怎麼拿目前的資料表名稱呢???
我有找到用 SELECT files,database() FROM $id;
這樣子可以拿到使用的資料庫名稱
卻找不到拿資料表名稱的....
第一個解決了 感謝 cutekid
一直沒想到直接把 $id 放進我要回傳的 json 就好了...
=======================
另一個問題有點長...
Table_1
------------------------
file Date flag
a1001 2013-10-05 0
a1002 2013-10-04 0
f1001 2013-10-05 0
c1003 2013-10-05 1
f1004 2013-10-03 1
c1005 2013-10-02 1
f1006 2013-10-05 2
a1007 2013-10-04 3
f1008 2013-10-02 3
c1009 2013-10-02 3
------------------------
要拿各組最新的資料出來 並依照日期排序 我用的語法是
SELECT a.files,a.Date,,a.flag
FROM (SELECT files,max(Date) AS max_date FROM $id GROUP BY flag) b
INNER JOIN $id a
ON a.files = b.files AND a.Date = b.max_date
ORDER BY a.Date DESC
但是我發現它每次拿出來的最新資料似乎是不同的
我看了一下資料 是不是因為
a1001 2013-10-05 0
c1003 2013-10-05 1
f1006 2013-10-05 2
a1007 2013-10-04 3
a1007 2013-10-04 3 <<< 這一組排在下面應該沒有問題
而 0 1 2 這三組 因為日期是一樣的
那它們是怎麼排的啊???
而在第 0 組中
a1001 2013-10-05 0
f1001 2013-10-05 0
這兩筆的日期是一樣的
它是怎麼決定要拿哪一筆當最新的呢???
或者我們可以決定要拿 a 或 f 開頭的當最新的呢???
------------------------
然後我想要一次只拿十筆
所以在上面的語法後面加了
LIMIT $start,10
$start <<一開始是0 第一次拿 第0筆 開始的10筆
第二次會拿 第10筆後的10筆
但是發現它會拿到重複的資料耶
在伺服器直接下 LIMIT 0,100 這樣是沒問題的
但只要用 LIMIT $start,10 並讓它顯示在網頁中
就會出問題 這是怎麼回事呢??
------------------------
最後 感謝願意看完這一篇的人
也請知道的人不吝指教
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.143.171.174
※ 編輯: flirmnave 來自: 220.143.171.174 (10/05 11:26)