1. 程式人生 > >mysql查詢最後幾條、生成一條包含多條記錄、插入語句、差值查詢

mysql查詢最後幾條、生成一條包含多條記錄、插入語句、差值查詢

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

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