2011-01-19 8 views
16

में मेज से एक रिकॉर्ड डंप करने के लिए मैं आईडी के लिए table1 के रूप में नामित mysql तालिका से एक रिकॉर्ड डंप करना चाहते = 5.स्क्रिप्ट mysql

क्या उसी के लिए mysql क्वेरी है?

मुझे लगता है कि हम mysqldump का उपयोग कर सकते हैं लेकिन मैंने इसे तालिका के पूर्ण रिकॉर्ड के साथ उपयोग किया है। लेकिन एक रिकॉर्ड के साथ इसका उपयोग कैसे करें?

+0

आपको एकल रिकॉर्ड की .sql फ़ाइल की आवश्यकता है? –

+0

@ शक्ति सिंह: हाँ दाएं –

+0

यदि 'आईडी' फ़ील्ड आपकी प्राथमिक कुंजी है तो आपको परिणाम को सीमित करने की आवश्यकता नहीं है (जैसे राणा ने किया)। शायद आपको SQL पर कुछ ट्यूटोरियल पढ़ना चाहिए, जैसे कि: http://www.itechcollege.com/courses/SQL/02- चयन- डेटा.एफ़पी – Tony

उत्तर

24

प्रयास करें यदि आप http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html पर जाँच आप --where विकल्प जो एक आप की जरूरत है मिल जाएगा।

नीचे इस प्रकार है क्या कि संदर्भ में कहा गया है:

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

डंप केवल पंक्तियों दिया जहां हालत द्वारा चयनित। स्थिति के आस-पास उद्धरण अनिवार्य हैं यदि इसमें रिक्त स्थान या अन्य वर्ण शामिल हैं जो आपके कमांड दुभाषिया के लिए विशेष हैं।

उदाहरण:

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

में रिकॉर्ड जोड़ना चाहती है, शायद आप तालिका निर्दिष्ट करना चाहते हैं नाम: mysqldump -uroot -p डेटाबेसबेस tablename -w "id = 'value'"; –

-4

इस क्वेरी का उपयोग करें "तालिका 1 से चुनें * आईडी = '5' LIMIT 1"। ठीक काम करना चाहिए।

+0

मैं एक टेबल से पंक्ति प्राप्त करना चाहता हूं और किसी अन्य डीबी की दूसरी तालिका में डालना चाहता हूं । तो यह केवल –

+0

काम नहीं करेगा यदि टेबल समान संरचना के हैं, तो बस "table2 (the_select_query) में" INSERT "का उपयोग करें। यदि आप विशिष्ट कॉलम चाहते हैं, तो 'तालिका 2 (कॉलम 1, कॉलम 2) VALUES (the_specific_slect_query)' – Rana

-2

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

में INSERT का चयन करते समय उनका उपयोग करें, यह काम नहीं करेगा, वह अलग-अलग डेटाबेस –

0

हालांकि नीचे एक नया/विभिन्न डेटाबेस के लिए काम नहीं करेगा

का प्रयास करें (table1 से * का चयन करें जहां आईडी = 5) table2 जांच

सम्मिलित करें;

सब एक है, तो एक ही सर्वर पर डेटाबेस भर में डालने के लिए जरुरी है है:

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] 
)