第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Java程序跳過MySQL數(shù)據(jù)庫中的前n行?

如何使用Java程序跳過MySQL數(shù)據(jù)庫中的前n行?

撒科打諢 2023-11-01 17:09:42
我有個問題。我正在編寫一個java應用程序,它將移動一些文件。由于性能問題,用戶可以選擇要移動的文件數(shù)量。如果文件被移動,我的數(shù)據(jù)庫將使用新路徑進行更新。我已經(jīng)編寫了該代碼,但現(xiàn)在的問題是它僅適用于第一個文件,例如 10 個文件。然后應用程序終止。所以到目前為止,一切都按預期進行。現(xiàn)在我想再次啟動應用程序,它將再次移動 10 個文件。現(xiàn)在的問題是,它再次從數(shù)據(jù)庫頂部啟動,并嘗試移動前 10 個文件,這些文件在我的應用程序的第一次運行中已被移動。那么我怎樣才能告訴我的程序它應該跳過前 10(n) 個文件呢?我的想法是用 1 和 0 向數(shù)據(jù)庫生成一個新列。每個已移動的文件都會得到一個 1,并且默認設置為零。然后程序檢查是否有 1 或 0,如果有 1,則繼續(xù)處理下一行。但我沒有找到如何使用 java 在數(shù)據(jù)庫中創(chuàng)建列的方法。下一個問題是該列應在應用程序運行后刪除。我嘗試編寫一個程序,結(jié)果發(fā)現(xiàn):DELIMITER $$CREATE PROCEDURE Alter_Table()BEGIN  DECLARE _count INT;    SET _count =( SELECT COUNT(*)              FROM INFORMATION_SCHEMA.COLUMNS              WHERE TABLE_NAME = 'test_cm_documents' AND                    COLUMN_NAME='subscribe_all');  IF _count = 0 THEN    ALTER TABLE test_cm_documents    ADD COLUMN subscribe_all TINYINT(1) DEFAULT 1,        ADD COLUMN subscribe_category varchar(512) DEFAULT NULL;  END IF;END$$DELIMITER ;如果我將它粘貼到 MySQL 命令行中,它可以工作,但當我嘗試使用 Java 程序執(zhí)行它時,它不起作用。我還嘗試將其保存為 *.sql 文件,但無法從 Java 程序中執(zhí)行它。我有兩個 Java 程序,我試圖用它們來解決我的問題,但出現(xiàn)了一些錯誤。import java.io.*;public class CmdExec {public static void main(String[] args) {    try {        String line;        Process p = Runtime.getRuntime().exec(                "mysql -u myuser -p xxxx -d cm_database -h 3306 -f C://Users//****//Desktop//procedure.sql");        BufferedReader input =                new BufferedReader                    (new InputStreamReader(p.getInputStream()));        while ((line = input.readLine()) != null) {            System.out.println(line);        }        input.close();    }catch(Exception err) {        err.printStackTrace();    }}}
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經(jīng)驗 獲得超5個贊

OFFSET 是您正在尋找的:

select * from table_name limit x offset y;-- 跳過 y 行

或者使用帶有兩個參數(shù)的 LIMIT。例如,要返回 30 行并跳過前 10 行(將返回 11 到 40),請使用:

select * from table_name limit 10, 30;


查看完整回答
反對 回復 2023-11-01
?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

使用 Cte 查詢跳過前 10(n) 個文件并獲取最近保存的同一行。例如


UID GID 中

1 1 1

2 1 2

3 1 2

4 1 2

5 2 1

6 2 2

7 2 2

8 2 3

9 2 4


with Demo as

(

select *, ROW_NUMBER() over (partition by GID, MID order by UID) as ROWNUMBER  from Table1

)

cte 創(chuàng)建一個表


UID     GID   MID   ROWNUMBER

1        1      1      1

2        1      2      1

3        1      2      2

4        1      2      3 

5        2      1      1

6        2      2      1

7        2      2      2

8        2      3      5

9        2      4      4


select  * from Demo ROWNUMBER  = 1


查看完整回答
反對 回復 2023-11-01
  • 2 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號