2011-01-19 22 views
16

我想從id = 5的mysql表中轉儲單個記錄。從mysql中的錶轉儲單條記錄的腳本

什麼是mysql查詢相同?

我認爲我們可以使用mysqldump,但是我已經將它與表格的完整記錄一起使用。但如何使用它與單個記錄?

+0

你需要單個記錄的.sql文件嗎? – 2011-01-19 10:34:20

+0

@ Shakti Singh:是的權利 – 2011-01-19 10:35:23

+0

如果`id`字段是你的主鍵,你不需要限制結果(就像Rana做的那樣)。也許你應該閱讀一些關於SQL的教程,例如:http://www.itechcollege.com/courses/SQL/02-Select-Data.php – Tony 2011-01-19 10:36:07

回答

24

,如果您檢查在http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html你會發現--where選項,這是一個你需要的。

如下下面是什麼在參考指出:選擇由給定的WHERE條件

--where='where_condition', -w 'where_condition' 

只轉儲行。如果條件中包含對命令解釋器特殊的空格或其他字符,則該條件是強制性的。

實例:

--where="user='jimf'" 
-w"userid>1" 
-w"userid<1" 
-4

使用此查詢「SELECT * FROM table1 WHERE id ='5'LIMIT 1」。應該工作正常。

+0

我想從一個表中獲取行並插入到另一個表的另一個表中。所以這隻會起作用 – 2011-01-19 10:33:37

-2

嘗試

INSERT INTO table2 (SELECT * FROM table1 WHERE id = 5); 
0

雖然下面將不用於新的/不同的數據庫工作

嘗試

INSERT INTO表2(SELECT * FROM表1 WHERE ID = 5);

所有需要做的,如果在同一臺服務器上跨數據庫將是:

INSERT INTO `newdbname`.`table2` (SELECT * FROM `olddbname`.`table1` WHERE id = 5); 

事實上,如果我沒有記錯甚至可以通過插入MySQL中選擇跨不同服務器上的數據庫將每個數據庫名和表的服務器名稱盈如下:

INSERT INTO `localhost`.`newdbname`.`table2` (SELECT * FROM `accessible-live-server-name`.`olddbname`.`table1` WHERE id = 5); 
0

insert into [dbo].[LocaleStringResource] 
    (LanguageId,ResourceName,ResourceValue) 
select 5 as LanguageId, ResourceName, ResourceValue 
from [dbo].[LocaleStringResource] 
where LanguageId = 2 and id = (
    SELECT MAX(ID) 
    FROM [dbo].[LocaleStringResource] 
)