Próbuję zrobić zrzut mysql kilku wierszy w mojej bazie danych. Następnie mogę użyć zrzutu, aby przesłać te kilka wierszy do innej bazy danych. Kod, który mam, działa, ale wszystko zrzuca. Jak mogę zmusić mysqldump do zrzucania tylko niektórych wierszy tabeli?
Oto mój kod:
mysqldump --opt --user=username --password=password lmhprogram myResumes --where=date_pulled='2011-05-23' > test.sql
--where="id IN(1,2,6,10)"
. Gdzie id to kolumna w tabeli. Ref --where--no-create-info
razem z klauzulą where, nowy zrzut odtworzy tabelę i usunie już przesłane dane! To może być oczywiste, ale teraz złapało mnie to dwukrotnie.date_pulled='2011-05-23'
. Oznacza to, że musisz cytować lub zmieniać znaczenie pojedynczych znaków cudzysłowu, więc są one zawarte w ciągu znaków, a nie są interpretowane jako cudzysłowy w składni powłoki. Dodanie podwójnych cudzysłowów wokół całej rzeczy robi to, ale tak samo by się stało--where=date_pulled="'2011-05-23'"
(--where=date_pulled=\'2011-05-23\'
lub nawet--where=date_pulled"'"2011-05-23"'"
).Musisz zacytować klauzulę „gdzie”.
Próbować
mysqldump --opt --user=username --password=password lmhprogram myResumes --where="date_pulled='2011-05-23'" > test.sql
źródło
Użyj tego kodu dla określonych wierszy tabeli, używając warunku LIKE.
mysqldump -u root -p sel_db_server case_today --where="date_created LIKE '%2018 %'" > few_rows_dump.sql
źródło