মাইএসকিএলে একটি ঘরের ডেটা পরিবর্তন করুন


156

আমি কীভাবে একটি মাইএসকিএল টেবিলের কেবলমাত্র একটি কক্ষে ডেটা পরিবর্তন করতে পারি। আমার আপডেটের সাথে সমস্যা আছে কারণ এটি কলাম পরিবর্তনে সমস্ত পরামিতি তৈরি করে তবে আমি কেবল একটি পরিবর্তন করতে চাই। কিভাবে?


আপনি এ পর্যন্ত কি কি? আপনি যে ক্যোয়ারীটি ব্যবহার করছেন তা কি ভাগ করে নিতে পারেন? সাধারণত, আপনি "একটি কলামের সমস্ত পরামিতি" আপডেট করেন না
নিকো হাজে

উত্তর:


191

আপনি সম্ভবত কোন সারিগুলি আপডেট করতে চান তা উল্লেখ করা দরকার ...

UPDATE 
    mytable
SET 
    column1 = value1,
    column2 = value2
WHERE 
    key_value = some_value;

1
এই উত্তরটি দেখে আমি বিভ্রান্ত হয়ে পড়েছিলাম, সেটগুলি পরিবর্তনের জন্য নির্বাচিত সারিগুলি ভেবেছিলাম এবং সেগুলি কোথায় পরিবর্তন করা হয়েছে।
কিথ

WHERE এ শর্তটি কলাম 1 = পুরানো_মূল্য হতে পারে?
weefwefwqg3

@ উইএফউইউফিউকিউজি 3, হ্যাঁ, এটি পারে তবে এর কোনও মানে নেই। যদি আপনি মানটি পরিবর্তন না করে থাকেন তবে এটি সেট অংশের বাইরে রেখে দিন।
ব্রায়ান হুপার

1
@ ব্রায়ান হুপার: আমার মান পরিবর্তন করতে হবে, আমি এটি করতে পারি কিনা তা জিজ্ঞাসা করার অর্থ: UPDATE mytable SET column1 = new_value WHERE column1 = old_value;??
weefwefwqg3

2
@ উইফয়েউফিউইউজিজি 3, আহা, আমি দুঃখিত, মায়োপিয়ার আক্রমণ see হ্যাঁ, এটা পুরোপুরি ঠিক আছে।
ব্রায়ান হুপার

112

আমার উত্তরটি অন্যেরা যা বলেছিল তার পুনরাবৃত্তি করছে, তবে আমি ভেবেছিলাম যে আমি MySQLপূর্ববর্তী উত্তরগুলি আমার কাছে একটু রহস্যজনক বলেই ব্যবহার করে একটি উদাহরণ যুক্ত করব ।

একক সারির কলাম আপডেট করতে আপনার যে কমান্ডটি ব্যবহার করতে হবে তা সাধারণ ফর্ম:

UPDATE my_table SET my_column='new value' WHERE something='some value';

এবং এখানে একটি উদাহরণ।

আগে

mysql> select aet,port from ae;
+------------+-------+
| aet        | port  |
+------------+-------+
| DCM4CHEE01 | 11112 | 
| CDRECORD   | 10104 | 
+------------+-------+
2 rows in set (0.00 sec)

পরিবর্তন করা

mysql> update ae set port='10105' where aet='CDRECORD';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

পরে

mysql> select aet,port from ae;
+------------+-------+
| aet        | port  |
+------------+-------+
| DCM4CHEE01 | 11112 | 
| CDRECORD   | 10105 | 
+------------+-------+
2 rows in set (0.00 sec)

এই বিক্ষোভের জন্য ধন্যবাদ। উপরের জিজ্ঞাসাটি আপনার কলাম এটে সিডিআরসিআরডির সমস্ত দৃষ্টান্ত আপডেট করবে। তবে নির্দিষ্ট কলামে একটি নির্দিষ্ট ঘর আপডেট করার সময় কলামের আইডির উপর ভিত্তি করে এটি করা ভাল, যেখানে আইডি = এক্সএক্স
মোহাম্মদ

সারিগুলির প্রাথমিক কী, সারিগুলির অনন্য শনাক্তকারী (যা প্রায়শই আইডি হয় তবে সর্বদা নয়) ব্যবহার করা ভাল। সত্যিই এটি আপনি যা করতে চান তার উপর নির্ভর করে যা "সেরা" অনুশীলনের সংজ্ঞা দেয়
গ্যারেট গ্যাং

30

UPDATE আপনার বিশেষভাবে তালিকাভুক্ত কলামগুলি পরিবর্তন করবে।

UPDATE some_table
SET field1='Value 1'
WHERE primary_key = 7;

WHEREদফা সীমা যা সারি আপডেট করা হয়। সাধারণত আপনি এটি আপনার টেবিলের প্রাথমিক কী (বা আইডি) মান সনাক্ত করতে ব্যবহার করবেন, যাতে আপনি কেবল একটি সারি আপডেট করছেন।

SETদফা আপডেটে মাইএসকিউএল যা কলাম বলে। আপনি যতগুলি পছন্দ করতে পারেন ততগুলি বা কয়েকটি কলাম তালিকাভুক্ত করতে পারেন। আপনি তালিকাভুক্ত করবেন না এমন কোনও আপডেট হবে না


11

UPDATE আপনার নির্দিষ্ট মানগুলি কেবল পরিবর্তন করে:

UPDATE table SET cell='new_value' WHERE whatever='somevalue'

9

নিম্নলিখিত চেষ্টা করুন:

UPDATE TableName SET ValueName=@parameterName WHERE
IdName=@ParameterIdName

দয়া করে আপনার উত্তরে কিছু ব্যাখ্যা যুক্ত করুন যাতে অন্যরা এটি থেকে শিখতে পারে - এটি কী করে @parameterName ?
নিকো হাজেস

7

টেবিল <tablename> সেট যেখানে আপডেট করুন<COLUMN=VALUE> <CONDITION>

উদাহরণ:

UPDATE TABLE teacher SET teacher_name='NSP' WHERE teacher_id='1'

3

এটা চেষ্টা কর.

UPDATE `database_name`.`table_name` SET `column_name`='value' WHERE `id`='1';

1
স্ট্যাক ওভারফ্লোতে স্বাগতম! যতক্ষণ এই কোড স্নিপেট স্বাগত, এবং কিছু সাহায্য প্রদান করতে পারে, এটা হবে ব্যাপকভাবে উন্নত যদি এটা একটি ব্যাখ্যা অন্তর্ভুক্ত এর কিভাবে এটা প্রশ্নের ঠিকানাগুলি। তা ছাড়া, আপনার উত্তরের শিক্ষাগত মূল্য অনেক কম রয়েছে - মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, কেবল এখন যে ব্যক্তি জিজ্ঞাসা করছেন তা নয়! দয়া করে ব্যাখ্যা যুক্ত করতে আপনার উত্তর সম্পাদনা করুন, এবং কোন সীমাবদ্ধতা এবং অনুমানগুলি প্রযোজ্য তা একটি ইঙ্গিত দিন।
টবি স্পিড

0

মাইএসকিউএল-এর কয়েকটি কলামের একটি "অন আপডেট" ধারা রয়েছে, দেখুন:

mysql> SHOW COLUMNS FROM your_table_name;

আমি কীভাবে এটি আপডেট করব তা নিশ্চিত নই তবে আমি যখন খুঁজে পাচ্ছি তখন একটি সম্পাদনা পোস্ট করব।


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