mysql查詢最後幾條、生成一條包含多條記錄、插入語句、差值查詢
阿新 • • 發佈:2019-02-09
1、查詢第一行記錄:
select * from table limit 1
2、查詢第n行到第m行記錄
select * from table1 limit n-1,m-n;
SELECT * FROM table LIMIT 5,10;返回第6行到第15行的記錄
select * from employee limit 3,1; // 返回第4行
3、查詢前n行記錄
select * from table1 limit 0,n;
或
select * from table1 limit n;
4、查詢後n行記錄
select * from table1 order by id desc limit n;//倒序排序,取前n行 id為自增形式
5、查詢一條記錄($id)的下一條記錄
select * from table1 where id>$id order by id asc limit 1
6、查詢一條記錄($id)的上一條記錄
select * from table1 where id<$id order by id desc limit
7、生成一條包含多條資料的插入語句(該方法可以快速插入)
mysqldump -u使用者名稱 -p密碼 資料庫名 表名 --where="篩選條件" > 匯出檔案路徑
例子:
從meteo資料庫的sdata表中匯出sensorid=11 且 fieldid=0的資料到 /home/xyx/Temp.sql 這個檔案中
mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.sql
另外你還可以直接匯出 文字檔案*.txt
mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.txt
資料較多時下面的一種速度可能更快一些
2、查詢第n行到第m行記錄
select * from table1 limit n-1,m-n;
SELECT * FROM table LIMIT 5,10;返回第6行到第15行的記錄
select * from employee limit 3,1; // 返回第4行
3、查詢前n行記錄
select * from table1 limit 0,n;
或
select * from table1 limit n;
4、查詢後n行記錄
select * from table1 order by id desc limit n;//倒序排序,取前n行 id為自增形式
5、查詢一條記錄($id)的下一條記錄
select * from table1 where id>$id order by id asc limit 1
6、查詢一條記錄($id)的上一條記錄
select * from table1 where id<$id order by id desc limit
7、生成一條包含多條資料的插入語句(該方法可以快速插入)
mysqldump -u使用者名稱 -p密碼 資料庫名 表名 --where="篩選條件" > 匯出檔案路徑
例子:
從meteo資料庫的sdata表中匯出sensorid=11 且 fieldid=0的資料到 /home/xyx/Temp.sql 這個檔案中
mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.sql
另外你還可以直接匯出 文字檔案*.txt
mysqldump -uroot -p123456 meteo sdata --where=" sensorid=11 and fieldid=0" > /home/xyx/Temp.txt
8、快速插入方法
如果同時從同一個客戶端插入很多行,使用含多個VALUE的INSERT語句同時插入幾行。這比使用單行INSERT語句快(在某些情況下快幾倍)。
INSERT INTO a VALUES (1,23),(2,34),(4,33);
鎖定表可以加速用多個語句執行的INSERT操作:
LOCK TABLES a WRITE;
INSERT INTO a VALUES (1,23),(2,34),(4,33);
INSERT INTO a VALUES (8,26),(6,29);
UNLOCK TABLES;
9、兩張表有一個欄位相同,t1有1200條資料,t2有1000條資料,對比查詢多餘的2000條資料
select * from table1 t1 left join table2 t2 on t1.id = t2.id where t2.id is null;
10、匯入資料unknown command的解決方案,這是編碼出錯,根據自己編碼方式設定編碼
mysql -udbuser -p --default-character-set=utf8 database < exp.sql
資料較多時下面的一種速度可能更快一些
mysql -udbuser -p;
use database;
source exp.sql