脚本从mysql中的表转储单个记录

时间:2011-01-19 10:30:27

标签: mysql mysqldump

我想从名为table1的mysql表转储id = 5的单个记录。

什么是mysql查询相同?

我认为我们可以使用mysqldump,但我已经将它用于表的完整记录。但如何将它与单一记录一起使用?

6 个答案:

答案 0 :(得分:27)

如果您在http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html处查看,您会找到 - 您需要的选项。

下面是该参考文献中所述的内容:

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

仅转储由给定WHERE条件选择的行。如果条件包含空格或其他对命令解释程序特殊的字符,则必须引用该条件。

示例:

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

答案 1 :(得分:0)

虽然以下内容不适用于新的/不同的数据库

  

尝试

     

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

如果在同一服务器上跨数据库插入,则需要执行以下操作:

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

事实上,如果我没有弄错,甚至可以在mysql中的不同服务器上插入select数据库,方法是在每个数据库名称和表的前面添加服务器名称,如下所示:

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

答案 2 :(得分: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]
)

答案 3 :(得分:0)

我只想发布一个更明确的答案。这是对公认的补充。

mysqldump -uremote_user -premote_password -hdatabase_host remote_database_name remote_table_name --where='id=1234' --skip-add-drop-table --no-create-info

答案 4 :(得分:-2)

尝试

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

答案 5 :(得分:-4)

使用此查询“SELECT * FROM table1 WHERE id ='5'LIMIT 1”。应该工作正常。