在查詢資料庫的時候,我們有時候需要對查詢出來的資料加上序列,1,2,3,……n
例如:我們根據表的某個字段排序後,要對這些資料加上序列,這個時候序號常常不是我們建表時設定好的自增的主鍵id,怎麼辦呢????
可能我們會用變數來解決,如下
set @rownum=0;
select @rownum:=@rownum+1 as rownum, table_name.*
from table_name
如果在資料庫中要用一句sql語句來實現,這又改怎麼辦呢????
oracle資料庫有專門的rownum來解決偽序列問題,但是mysql卻到目前為止還沒有內建的函式等來解決此問題
這個問題也困擾了我一段時間,到各種上發帖也沒有能回答,最後在無意間找到了這種解決方法
select @rownum:=@rownum+1 as rownum, table_name.*
from (select @rownum:=0) r, table_name
把rownum的設定初值放到了from 和需要查詢的表的前面
mysql資料庫效能資料 MYSQL資料庫效能優化
1.選取最適用的字段屬性 表中字段的寬度設得盡可能小 char 的上限為 255 位元組 固定占用空間 varchar 的上限 65535 位元組 實際占用空間 text 的上限為 65535。盡量把字段設定為 not null,執行查詢的時候,資料庫不用去比較 null 值。2.使用連線 join...
mysql資料庫筆記(四)排序查詢資料
語法格式 使用select語句的order by子句進行查詢。order by 子句取乙個或多個列的名字進行排序。單列排序 asc 關鍵字表示公升序。asc 公升序查詢 查詢部門表資訊,按照部門號公升序排序 select a.id,a.name,a.region id from s dept a o...
C實現MySQL資料庫操作
兩個月前,也就是9月份,心血來潮在windows下實現了用c連線資料庫,當時很是有把linux下一併給實現了。但是沒有想得那麼簡單。這個任務一直推遲到了現在才完成,究其原因 1.我直接用eclipse開發工具,對於環境變數的設定不是很熟。2.linux系統庫檔案結構不熟悉,對於mysql提供的庫檔案...