我想从名为table1的mysql表转储id = 5的单个记录。
什么是mysql查询相同?
我认为我们可以使用mysqldump
,但我已经将它用于表的完整记录。但如何将它与单一记录一起使用?
答案 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”。应该工作正常。