2011-01-19 1 views
16

Я хочу сбросить одну запись из таблицы тузд с именем в table1 для ид = 5.скрипт сваливать одну запись из таблицы в MySQL

Что такое MySQL запрос для таких же?

Я думаю, мы можем использовать mysqldump, но я использовал его с полными записями таблицы. Но как использовать его с одной записью?

+0

Вам нужен файл .sql с одной записью? –

+0

@ Shakti Singh: yes right –

+0

Если поле 'id' является вашим основным ключом, вам не нужно ограничивать результат (как это делал Рана). Возможно, вам стоит прочитать несколько руководств по SQL, например: http://www.itechcollege.com/courses/SQL/02-Select-Data.php – Tony

ответ

24

если вы проверить на http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html вы найдете --where вариант, который является один вам нужно.

Ниже следует, что сказано в этой ссылке:

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

Дампа только выбранные строки по заданному WHERE условия. Котировки вокруг условия являются обязательными, если они содержат пробелы или другие символы, которые являются особыми для вашего интерпретатора команд.

Примеры:

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

Возможно, вы хотите указать таблицу name: mysqldump -uroot -p databasename tablename -w "id = 'value'"; –

-4

Используйте этот запрос "SELECT * FROM table1 WHERE id = '5' LIMIT 1". Должен работать нормально.

+0

Я хочу получить строку из одной таблицы и вставить в другую таблицу другого db , Так что это только не сработало –

+0

Если таблицы имеют одинаковую структуру, просто используйте «INSERT INTO table2 (the_select_query)». Если вам нужны определенные столбцы, то укажите их при выборе и использовании «INSERT INTO table2 (column1, column2) VALUES (the_specific_slect_query)» – Rana

-2

Попробуйте

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

это не сработает, она хочет добавить запись в другую базу данных –

0

Хотя ниже не будет работать для новой/другой базе данных

Try

INSERT INTO table2 (SELECT * FROM table1 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] 
)