মাইএসকিউএল আপডেট ক্যোয়ারিতে 'ফিল্ড তালিকায়' ত্রুটিযুক্ত অজানা কলাম


127

এই আপডেট ক্যোয়ারীটি সম্পাদন করার চেষ্টা করার সময় আমি মাইএসকিউএল ত্রুটি # 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' 

উত্তর:


167

"Y" এর জন্য বিভিন্ন উদ্ধৃতি ব্যবহার করার চেষ্টা করুন কারণ সনাক্তকারী উদ্ধৃতি চরিত্রটি ব্যাকটিক ("` ")। অন্যথায় মাইএসকিউএল "মনে করে" যে আপনি "y" নামে একটি কলাম দেখিয়েছেন।

আরও দেখুন মাইএসকিউএল 5 ডকুমেন্টেশন


যখন আমি বিভ্রান্ত হয়ে পড়েছিলাম তখন আমার স্ট্রিংগুলির চারপাশে একক উদ্ধৃতিগুলির পরিবর্তে ডাবল কোট ব্যবহার করা হত I
ট্রিপলি

48

একক উদ্ধৃতিতে মাইএসকিএল সার্ভারে যাওয়ার জন্য যে কোনও স্ট্রিং সংযুক্ত করুন; উদাহরণ:

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

মনে রাখবেন যে কোয়েরিটি ডাবল উদ্ধৃতিগুলির মধ্যে আবদ্ধ থাকলেও আপনাকে অবশ্যই একক উদ্ধৃতিতে কোনও স্ট্রিং আবদ্ধ করতে হবে


ধন্যবাদ. আমি পিএইচপি-তে আমার প্রশ্নটি কেন কাজ করছে না তা জানার চেষ্টা করছিলাম, আমাকে যা করতে হয়েছিল তা হল একক উদ্ধৃতি যুক্ত করা।
রিচি

1
আমি জানি এটি একটি পুরানো পোস্ট তবে আপনি কেন উত্তর দিতে হবে তা উত্তর দিতে সক্ষম হবেন?
রিচি 5

@ রিচি এটি স্ট্রিং ব্যবহার করার সময় সাধারণত নিরাপদ। এছাড়াও, উদ্ধৃতিগুলির মধ্যে স্ট্রিং রাখার জন্য আমার আরও অর্থবোধ করে। উদাহরণস্বরূপ, আপনি যখন SHA1 এর মতো ফাংশন ব্যবহার করেন, আপনি ভিতরে SHA1('$var')
জর্জ

এটি আমার পক্ষে কাজ করেছে। প্রথমে আমি ব্যাকটিক্স ব্যবহার করার চেষ্টা করেছি কোন ভাগ্য ছাড়াই।
রেডবিএক্স

সঠিকভাবে ক্যোয়ারিতে পাস করা সমস্ত ভেরিয়েবলগুলি এড়িয়ে চলুন! $name = mysqli_real_escape_string($name)উদ্ধৃতি সঠিকভাবে এড়াতে ব্যবহার করুন !
Le 'nton

16

আপনি আপনার পছন্দ অনুসারে উদ্ধৃতি পরীক্ষা করতে পারেন (মান, স্ট্রিং ইত্যাদির জন্য ডাবল / / একক উদ্ধৃতি এবং কলামের নামগুলির জন্য ব্যাকটিক্স ব্যবহার করুন)।

যেহেতু আপনি কেবল টেবিলটি আপডেট করতে চান 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);

4

আমার ক্ষেত্রে, এটি কলাম নামের শেষে একটি অদেখা ট্রেলিং স্পেসের কারণে হয়েছিল। আপনি পরিবর্তে "y" বা "y" ব্যবহার করছেন কিনা তা পরীক্ষা করে দেখুন check


2

EF কোডটি নিয়ে একটি নেট নেট বিল্ডে কাজ করার সময়, আমার মাইগ্রেশনটি যেখানে আমার Sql("UPDATE tableName SET columnName = value");বিবৃতি ছিল সেখানে প্রয়োগ করার চেষ্টা করার সময় আমি এই ত্রুটি বার্তাটি পেয়েছি ।

দেখা যাচ্ছে আমি কলামের নামটি ভুল বানান করেছি।


1

এই বিষয়ে আমার অভিজ্ঞতাটি ভাগ করে নিচ্ছি। আমি এই একই সমস্যা ছিল। সন্নিবেশ বা আপডেটের বিবৃতিটি সঠিক। এবং আমি এনকোডিংও পরীক্ষা করেছিলাম। কলামটি বিদ্যমান। তারপর! আমি জানতে পেরেছিলাম যে আমি আমার ট্রিগারটিতে কলামটি উল্লেখ করছি। কোনও স্ক্রিপ্ট আপনার যে সমস্যাটিতে সমস্যা করছে সেটিকে কলাম উল্লেখ করছে কিনা তাও আপনার ট্রিগারটি পরীক্ষা করা উচিত।


1

এই বিষয়ে আমার অভিজ্ঞতাটি ভাগ করে নিচ্ছি। আমি এই একই সমস্যা ছিল। আমার জিজ্ঞাসাটি ছিল:

select table1.column2 from table1

তবে টেবিল 1 এর কলাম 2 কলাম নেই।


0

আমিও একই ত্রুটি পেয়েছি, আমার ক্ষেত্রে সমস্যাটি হ'ল আমি কলামটির নামটি ধারাটিতে অন্তর্ভুক্ত করেছি GROUP BYএবং এটি এই ত্রুটির কারণ হয়েছিল। সুতরাং GROUP BYধারাটি থেকে ধারাটি সরিয়ে ফেললেন এবং এটি কার্যকর হয়েছে !!!


0

এটি হাইবারনেট এবং জেপিএ হয়। আপনার উল্লেখ করা টেবিলের নামটি পরীক্ষা করুন এবং কলামগুলি কোনও মিল নয়


0

কোনও মাইএসকিউএল ডাটাবেসে লিনকিউয়ের মাধ্যমে গ্রুপবি ব্যবহার করার সময় আমি এই ত্রুটিটি পেয়েছি। সমস্যাটি হ'ল গ্রুপ বায়ু দ্বারা বেনামে থাকা অবজেক্ট সম্পত্তিটি ডাটাবেস কলামের নামের সাথে মেলে না। কলামের নামের সাথে মিল রাখতে অজ্ঞাতনামা সম্পত্তি নাম পরিবর্তন করে স্থির করা হয়েছে।

.Select(f => new 
{
   ThisPropertyNameNeedsToMatchYourColumnName = f.SomeName
})
.GroupBy(t => t.ThisPropertyNameNeedsToMatchYourColumnName);

0

এর মতো একটি ক্যোয়ারীও ত্রুটির কারণ ঘটবে:

SELECT table1.id FROM table2

যেখানে সারণিটি কলাম নির্বাচন করে নির্দিষ্ট করা হয়েছে এবং এটি ধারা থেকে অন্তর্ভুক্ত নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.