2009-08-28 27 views
76

मैं, हो रही MySQL त्रुटि # 1054 जब इस अद्यतन क्वेरी प्रदर्शन करने के लिए कोशिश कर रखना:अज्ञात स्तंभ

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH 
SET MASTER_USER_PROFILE.fellow=`y` 
WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID 
AND TRAN_USER_BRANCH.BRANCH_ID = 17 

यह शायद कुछ सिंटेक्स त्रुटि है, लेकिन मैं का उपयोग कर की कोशिश की है एक आंतरिक बजाय और अन्य परिवर्तन शामिल हो, लेकिन मैं एक ही संदेश प्राप्त हो रहा:

Unknown column 'y' in 'field list' 

उत्तर

109

पहचानकर्ता उद्धरण कैरेक्टर के रूप में "Y" के लिए अलग उद्धरण बैकटिक ("` ") का उपयोग किया जाता है की कोशिश करो। अन्यथा MySQL "सोचता है" कि आप "y" नामक कॉलम पर इंगित करते हैं।

भी MySQL 5 Documentation

+0

यह मुझे मदद करता है धन्यवाद। –

15

देखें आप उद्धरण के अपनी पसंद की जाँच कर सकते (स्तंभ-नाम के लिए मूल्यों, तार, आदि और बैकटिक के लिए/एकल उद्धरण डबल का उपयोग करें)।

मैं एक नेस्टेड क्वेरी की सलाह देते हैं जब से तुम केवल तालिका master_user_profile अपडेट करना चाहते हैं:

UPDATE 
    master_user_profile 
SET 
    master_user_profile.fellow = 'y' 
WHERE 
    master_user_profile.user_id IN (
     SELECT tran_user_branch.user_id 
     FROM tran_user_branch WHERE tran_user_branch.branch_id = 17); 
+0

सुझाव के लिए धन्यवाद, यह एक और अधिक सुरुचिपूर्ण विधि की तरह प्रतीत होता है। –

33

किसी भी स्ट्रिंग संलग्न एकल उद्धरण के अंदर mysql सर्वर से पारित होने के लिए; उदा .:

$name = "my name" 
$query = " INSERT INTO mytable VALUES (1 , '$name') " 

ध्यान दें कि हालांकि क्वेरी दोहरे उद्धरण चिह्नों के बीच संलग्न है, तो आप एकल उद्धरण में किसी भी स्ट्रिंग संलग्न करना होगा।

+0

धन्यवाद। मैं यह पता लगाने की कोशिश कर रहा था कि PHP में मेरी क्वेरी क्यों काम नहीं कर रही थी, मुझे बस इतना करना था कि एकल उद्धरण जोड़ें। – RiCHiE

+1

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन क्या आप जवाब दे पाएंगे कि आपको उद्धरण क्यों देना है? – RiCHiE

+0

@RiCHiE स्ट्रिंग का उपयोग करते समय आमतौर पर सुरक्षित होता है। इसके अलावा, उद्धरण के बीच स्ट्रिंग डालने के लिए मुझे और अधिक समझ में आता है। जब आप SHA1 जैसे फ़ंक्शंस का उपयोग करते हैं, उदाहरण के लिए, आप 'SHA1 (' $ var ') जैसे सामग्री में उद्धरण डालते हैं। – George

2

मेरे मामले में, यह स्तंभ नाम के अंत में एक अदृश्य पिछली जगह के कारण हुआ था। बस जांचें कि क्या आप वास्तव में "y" या "y" का उपयोग करते हैं।

0

थी की तरह एक क्वेरी भी त्रुटि

select table1.id from table2 

कहाँ तालिका खंड से स्तंभ का चयन में निर्दिष्ट और नहीं शामिल किया गया है में कारण होगा।

0

पहले नेट ईएफ कोड के साथ नेट नेट ऐप पर काम करते समय, मुझे माइग्रेशन लागू करने का प्रयास करते समय यह त्रुटि संदेश मिला जहां मेरे पास Sql("UPDATE tableName SET columnName = value"); कथन था।

बाहर निकलता है मैंने कॉलमनाम को गलत वर्तनी दी।

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