<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 關于數據庫分頁查詢 在前面的章節中介紹了如下的鏈式調用方式來獲取查詢結果集的部分切片。 ~~~ //例如以下例子,是取結果集的第1條到第50條記錄 results, err := engine.Sql(sql).Query().ListPage(1,50) ~~~ 但這并不是數據庫分頁查詢,而是將查詢結果集獲取到本地取部分切片。 xorm也同樣支持數據庫分頁查詢,有如下四種方式: * 方式一:orm方式數據庫分頁查詢 使用Limit函數進行數據庫分頁查詢,Limit(int, …int)限制獲取的數目,第一個參數為條數,第二個參數表示開始位置,如果不傳則為0 ~~~ var log []Log err = engine.Limit(5, 2).Find(&log) ~~~ * 方式二:執行原生sql語句方式數據庫分頁查詢 使用Sql,SqlMapClient,SqlTemplateClient函數執行原生sql語句進行數據庫分頁查詢。 ~~~ results, err := engine.Sql("SELECT * FROM log LIMIT ? OFFSET ?", 5, 2).Query().List() var log []Log err := engine.Sql("SELECT * FROM log LIMIT ? OFFSET ?", 5, 2).Find(&log) ~~~ * 方式三:使用原生sql語句配合Limit函數或OrderBy函數方式進行數據庫分頁查詢 有時,我們需要跨表查詢多張表或者join多張表進行數據庫分頁查詢,而oracle和mssql數據庫分頁語句相對復雜和多樣,我們希望更關注業務邏輯,此時可以使用原生sql語句配合Limit函數或OrderBy函數方式進行數據庫分頁查詢。 對于oracle,postgresql,mysql等數據庫,可以使用原生sql語句配合Limit函數進行數據庫分頁查詢。注意,這些數據庫并不支持像mssql數據庫那樣使用原生sql語句配合Limit函數及OrderBy函數進行數據庫分頁查詢。 ~~~ results, err := engine.Sql("SELECT * FROM log").Limit(5, 2).Query().List() var ptlog []PtTimelineLog err = engine.Sql("SELECT * FROM log").Limit(5, 2).Find(&ptlog) ~~~ 對于postgresql,mysql數據庫生成的分頁查詢sql語句為 ~~~ SELECT * FROM log LIMIT 5 OFFSET 2 ~~~ 在oracle數據庫中同樣也可以使用以上方式進行數據庫分頁查詢,舉例如下: ~~~ querySql := "QUERY_EQU_ALL_RFID" //sqlmap id deviceCode:= "210601" //設備編號 pageNumber:=2 //第2頁 pageItemNumber:=10 //每頁顯示數量 first := (pageNumber - 1) * pageItemNumber results, err := engine.SqlMapClient(querySql, deviceCode).Limit(pageItemNumber, first).Query().List() ~~~ sqlmap中配置的sql語句如下: ~~~ SELECT ID,EQU_ID,EQU_NAME,EQU_TYPE_CODE,EQU_TYPE_NAME,COMPONENT_CODE,COMPONENT_NAME,RFID,RFID_VERIFY,ISSUE_TIME,VERIFY_TIME,POS_X,POS_Y,ACCOUNT,ACCOUNT_NAME from VIEW_EQU_ALL_RFID where EQU_TYPE_CODE=? ~~~ oracle數據庫生成執行的分頁查詢SQL語句如下,其中xormdvCEQcJ97XQYsAcy36rehK是一個ROWNUM偽列,查詢返回結果集[]map[string]interface{}中將不會存在,如果使用Find函數返回結果集,定義的結構體中無需定義此字段 ~~~ SELECT aat.* FROM (SELECT at.*,ROWNUM xormdvCEQcJ97XQYsAcy36rehK FROM (SELECT ID,EQU_ID,EQU_NAME,EQU_TYPE_CODE,EQU_TYPE_NAME,COMPONENT_CODE,COMPONENT_NAME,RFID,RFID_VERIFY,ISSUE_TIME,VERIFY_TIME,POS_X,POS_Y,ACCOUNT,ACCOUNT_NAME from VIEW_EQU_ALL_RFID where EQU_TYPE_CODE='210601') at WHERE ROWNUM <= 20) aat WHERE xormdvCEQcJ97XQYsAcy36rehK > 10 ~~~ 對于mssql數據庫,由于數據庫分頁語句的本身的特性,可以使用原生sql語句配合Limit函數及OrderBy函數進行數據庫分頁查詢。注意,在mssql數據庫中這種方式進行數據庫分頁查詢,Limit函數及OrderBy函數必須一起使用。 ~~~ //示例1 results, err := engine.Sql("select t_tx_counts.id,t_tx_counts.count,t_tx_code.code from t_tx_code,t_tx_counts where t_tx_code.id=t_tx_counts.id and t_tx_code.id>?", 2). OrderBy("count").Limit(5, 1).Query().List() //示例2 var results []Result err = engine.Sql("select t_tx_counts.id,t_tx_counts.count,t_tx_code.code from t_tx_code,t_tx_counts where t_tx_code.id=t_tx_counts.id and t_tx_code.id>?", 2). OrderBy("id DESC").Limit(5, 0).Find(&results) ~~~ 示例1生成的sql語句如下,其中xormv2rGnVAWh4qPT5Qntkt4PZ是一個ROW_NUMBER偽列,查詢返回結果集[]map[string]interface{}中將不會存在,如果使用Find函數返回結果集,定義的結構體中無需定義此字段 ~~~ SELECT sq.* FROM (SELECT ROW_NUMBER() OVER (ORDER BY count) AS xormv2rGnVAWh4qPT5Qntkt4PZ, T_TX_COUNTS.ID,T_TX_COUNTS.COUNT,T_TX_CODE.CODE FROM T_TX_CODE,T_TX_COUNTS WHERE T_TX_CODE.ID=T_TX_COUNTS.ID AND T_TX_CODE.ID>2) AS sq WHERE xormv2rGnVAWh4qPT5Qntkt4PZ BETWEEN 2 AND 6 ~~~ 示例2生成的sql語句如下 ~~~ SELECT TOP 5 T_TX_COUNTS.ID,T_TX_COUNTS.COUNT,T_TX_CODE.CODE FROM T_TX_CODE,T_TX_COUNTS WHERE T_TX_CODE.ID=T_TX_COUNTS.ID AND T_TX_CODE.ID>2 ORDER BY id DESC ~~~ * 方式四:使用sql builder來構建sql語句進行數據庫分頁查詢。 sql builder相關內容請閱讀原版xorm提供了一個SQL Builder庫 [github.com/go-xorm/builder](https://github.com/go-xorm/builder)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看