2011-01-19 13 views
16

Chcę zrzucić jeden rekord z tabeli mysql o nazwie jak tabela1 dla id = 5.skrypt zrzucić jeden rekord z tabeli w mysql

Co to jest zapytanie mysql za to samo?

Myślę, że możemy użyć mysqldump, ale użyłem go z pełną dokumentacją tabeli. Ale jak z niego korzystać z pojedynczym rekordem?

+0

Potrzebujesz pliku .sql pojedynczego rekordu w prawo? –

+0

@ Shakti Singh: tak dobrze –

+0

Jeśli pole 'id' jest twoim kluczem podstawowym, nie powinieneś ograniczać wyniku (tak jak robiła to Rana). Być może powinieneś przeczytać kilka samouczków na temat SQL, takich jak: http://www.itechcollege.com/courses/SQL/02-Select-Data.php – Tony

Odpowiedz

24

sprawdzając przy http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html znajdziesz --where opcję, która jest jednym trzeba.

Poniżej następuje co zostało stwierdzone w tym odniesienie:

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

Dump tylko wiersze wybrane przez danego warunku WHERE. Cytaty dotyczące tego warunku są obowiązkowe, jeśli zawierają spacje lub inne znaki specjalne dla tłumacza poleceń.

Przykłady:

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

Prawdopodobnie chcesz określić tabelę nazwa: mysqldump -uroot -p nazwa_bazy_danych nazwa_tabeli -w "id =" wartość ""; –

-4

Użyj tego zapytania "WYBIERZ * Z tabeli1 WHERE id =" 5 "LIMIT 1". Powinien działać dobrze.

+0

Chcę uzyskać wiersz z jednej tabeli i wstawić do innej tabeli innego db . Więc to nie zadziała. –

+0

Jeśli tabele mają taką samą strukturę, po prostu użyj "INSERT INTO table2 (the_select_query)". Jeśli chcesz konkretnych kolumn, a następnie wspomnieć o nich podczas wybierania i używać "INSERT INTO table2 (column1, column2) VALUES (the_specific_slect_query)" – Rana

-2

Spróbuj

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

to nie zadziała, chce dodać rekord do innej bazy danych –

0

Chociaż poniżej nie będzie działać na nowej/innej bazy danych

Try

INSERT INTO tabela2 (SELECT * FROM Table1 WHERE id = 5);

Wszystko trzeba zrobić, jeśli wstawienie całej bazy danych na tym samym serwerze jest:

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

W rzeczywistości, jeśli się nie mylę można wstawić nawet wybrać całej bazy danych na różnych serwerach w mysql przez dodając nazwę serwera Infront każdej nazwy bazy danych i tabeli w następujący sposób:

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] 
) 
Powiązane problemy