2010-04-07 15 views
14

मैं इस तरह कुछ करने के लिए करना चाहते हैं:MySql का चयन के रूप में - सभी फ़ील्ड नाम संलग्न

SELECT table.id AS prefix_id, table.name AS prefix_name 

... और उपसर्ग उन सब को मैन्युअल रूप से चयन करने के बजाय सभी फ़ील्ड नाम करने के लिए गतिशील रूप से जोड़ लिया है (यानी SELECT table.* AS prefix_* या कुछ)

उम्मीद है कि मैंने सटीक रूप से वर्णन किया है। कोई विचार?

संपादित

स्पष्ट है कि, कारण मैं पूछ रहा हूँ यकीन है कि मेरी क्वेरी परिणाम हर तालिका मैं फोन भले ही डुप्लिकेट फ़ील्ड नाम से हर कॉलम होता है बनाने के लिए है। उदाहरण के लिए, मेरे पास बहुत से फ़ील्ड वाले टेबल हो सकते हैं जिसका अर्थ है कि मैं मैन्युअल रूप से सभी फ़ील्ड को उपनाम नहीं करना चाहता हूं। इसके अलावा यदि 3 टेबलों में name नामक फ़ील्ड है तो मेरे परिणाम में तीन name परिणाम नहीं होंगे; यह एक होगा। मैं अपने कॉलम नामों के साथ अस्पष्टता से बचना चाहता हूं।

+0

उपसर्गों का उद्देश्य क्या है मिल सकता है? मुझे लगता है कि मेरे पास एक विचार है, लेकिन यह आपकी समस्या के संदर्भ पर निर्भर करेगा। – JohnFx

+0

यदि मैं दो तालिकाओं से जानकारी खींच रहा हूं और दोनों में 'आईडी' और एक कॉलम 'नाम' की अनुक्रमणिका है, तो यह दोनों तालिकाओं के परिणाम नहीं लौटाएगी। – jay

+0

* उम्मीदपूर्वक * अधिक उपयोगी होने के लिए प्रश्न संपादित किया। – jay

उत्तर

4

कई तालिकाओं के साथ कॉलम में यह मैन्युअल रूप से प्रत्येक स्तंभ नाम है कि एक से अधिक तालिका में एक ही नाम के साथ मौजूद है निर्दिष्ट करना होगा प्रकट होता है अस्पष्टता से बचने के लिए।

http://dev.mysql.com/doc/refman/5.0/en/identifier-qualifiers.html

0

जब आप परिणामों का संदर्भ देते हैं, तो आप प्रत्येक कॉलम को tablename.column द्वारा संदर्भित कर सकते हैं। इसलिए आपके पास एक डिफ़ॉल्ट उपसर्ग है जो प्रत्येक कॉलम नाम में संलग्न है।

SELECT table.id,table.name,other.name FROM table,other Where other.name = table.name; 
0

मैं एक स्थिति है, तो आप एक सूची में एक से अधिक डेटा मॉडल है कि आप एक ही SQL क्वेरी से पॉप्युलेट करने के लिए की जरूरत है, जहां इस उपयोगी हो सकता है कल्पना कर सकते हैं।

यह उपयोग करने के लिए वर्णन से पहले उन टेबल पर या स्तंभ दिखाएं क्वेरी का चयन संभव हो जाना चाहिए। इस तरह, आप प्रत्येक तालिका के लिए सभी फ़ील्ड नामों को जानते हैं। यह किसी भी संभावित क्षेत्र के नाम संघर्ष के साथ मदद नहीं करता है।

मैं इस पर टिप्पणी नहीं कर रहा हूं कि यह एक अच्छा विचार है या नहीं। प्रत्येक डेवलपर को यह तय करना होगा कि लचीलापन, आलस्य और अच्छी प्रैक्टिस के बीच रेखा को कहां खींचना है।

0

mysqli में आप php समारोह

mysqli_fetch_fields()

fieldinformations के लिए

उपयोग कर सकते हैं - तो आप प्रत्येक के tablename collumn

संबंधित मुद्दे