[SQL ] 分組最新並排序和取得表單名稱的問題

看板Database作者 (焰離雨星)時間12年前 (2013/10/05 10:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我用的是 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)
文章代碼(AID): #1IJtJm_H (Database)