MYSQL डंप केवल कुछ पंक्तियाँ


96

मैं अपने डेटाबेस में कुछ पंक्तियों की mysql डंप करने की कोशिश कर रहा हूं। फिर मैं उन कुछ पंक्तियों को दूसरे डेटाबेस में अपलोड करने के लिए डंप का उपयोग कर सकता हूं। मेरे पास जो कोड है वह काम कर रहा है, लेकिन यह सब कुछ डंप करता है। मैं केवल तालिका की कुछ पंक्तियों को डंप करने के लिए mysqldump कैसे प्राप्त कर सकता हूं?

यहाँ मेरा कोड है:


mysqldump --opt --user=username --password=password lmhprogram myResumes  --where=date_pulled='2011-05-23' > test.sql

जवाबों:


142

बस अपने --whereविकल्प को ठीक करें । यह मान्य SQL WHERE क्लॉज होना चाहिए, जैसे:

--where="date_pulled='2011-05-23'"

आपके पास उद्धरणों के बाहर कॉलम नाम है।


1
थैंक्स ने वही किया जिसकी मुझे जरूरत थी। सहायता के लिए धनयवाद!
Shattuck

@AJ, बढ़िया जानकारी! धन्यवाद!
रोमन न्यूजा

2
के लिए में हालत, हम बस का उपयोग कर सकते --where="id IN(1,2,6,10)"। जहाँ id टेबल में कॉलम है। रेफ - जगह
योगेश

9
मेरे जैसे किसी व्यक्ति के लिए बस एक नोट का उपयोग करके एक बड़े डेटाडंप को दूसरे सर्वर पर पाइप करने के लिए जो बीच में टूट गया, यदि आप --no-create-infoअपने जहां-जहां क्लॉज के साथ निर्दिष्ट नहीं करते हैं , नया डंप टेबल को फिर से बनाएगा और पहले से ही स्थानांतरित डेटा को हटा देगा! स्पष्ट हो सकता है, लेकिन अब मुझे दो बार पकड़ा गया है।
georgiecasey

ध्यान दें कि समस्या यह नहीं थी कि कॉलम का नाम उद्धरणों के बाहर है। यह एक शेल कमांड है, इसलिए आपको स्ट्रिंग के लिए शेल सिंटैक्स लिखना होगा date_pulled='2011-05-23'। इसका मतलब है कि आपको एकल उद्धरण वर्णों को उद्धृत करने या उनसे बचने की आवश्यकता है, इसलिए उन्हें शेल सिंटैक्स में उद्धरण के रूप में व्याख्या किए जाने के बजाय स्ट्रिंग में शामिल किया गया है। पूरी चीज़ के आसपास दोहरे उद्धरण जोड़ते हैं, लेकिन ऐसा होगा --where=date_pulled="'2011-05-23'"(या --where=date_pulled=\'2011-05-23\', या --where=date_pulled"'"2011-05-23"'")।
बेन

32

आपको "जहां" खंड को उद्धृत करने की आवश्यकता है।

प्रयत्न

mysqldump --opt --user=username --password=password lmhprogram myResumes  --where="date_pulled='2011-05-23'" > test.sql

1
ठीक वैसा ही जैसा मुझे चाहिए था। एक अन्य व्यक्ति ने आपके सामने सही उत्तर दिया और मैंने उसका उत्तर चुना, लेकिन मैंने आपकी सहायता के लिए उत्थान किया।
Shattuck

1
इस तरह से क्वेरी का उपयोग करने का एक और तरीका है: TATE new_table AS (Select * FROM myResumes WHERE जहाँ = date_pulled = '2011-05-23'); तब आप बस इस तालिका को mysqldump के माध्यम से निर्यात कर सकते हैं।
विनायगम

1

LIKE कंडीशन का उपयोग करके, विशिष्ट तालिका पंक्तियों के लिए इस कोड का उपयोग करें।

mysqldump -u root -p sel_db_server case_today --where="date_created LIKE '%2018
%'" > few_rows_dump.sql
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.