কম্পিউটার টিউটোরিয়াল

MySQL-এ টেবিল রেকর্ডে শুধু প্রথম অক্ষর সার্চ/রিপ্লেস করা

শুধু প্রথম встреча যাওয়া অক্ষরটি রিপ্লেস করতে CONCAT(), REPLACE() এবং INSTR() ফাংশন কম্বাইন করতে হয়।

সিনট্যাক্স

UPDATE yourTableName 
SET yourColumnName = CONCAT(
    REPLACE(LEFT(yourColumnName, INSTR(yourColumnName, 'k')), 'k', 'i'),
    SUBSTRING(yourColumnName, INSTR(yourColumnName, 'k') + 1)
);

উদাহরণ দিয়ে বুঝি

টেবিল তৈরি করুন:

mysql> CREATE TABLE UserInformation (
    -> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName VARCHAR(10),
    -> UserPost TEXT
    -> );
Query OK, 0 rows affected (2.05 sec)

রেকর্ড ইনসার্ট করুন (সব রোয়ে 'Thks' শব্দে 'k' আছে):

mysql> INSERT INTO UserInformation(UserName, UserPost) VALUES('Larry', 'Thks is a MySQL query');
mysql> INSERT INTO UserInformation(UserName, UserPost) VALUES('Mike', 'Thks is not a java program');
mysql> INSERT INTO UserInformation(UserName, UserPost) VALUES('Sam', 'Thks is a SQL syntax');

আপডেট করার আগে:

mysql> SELECT * FROM UserInformation;
+--------+----------+----------------------------+
| UserId | UserName | UserPost                   |
+--------+----------+----------------------------+
|      1 | Larry    | Thks is a MySQL query      |
|      2 | Mike     | Thks is not a java program |
|      3 | Sam      | Thks is a SQL syntax       |
+--------+----------+----------------------------+
3 rows in set (0.00 sec)

শুধু প্রথম 'k' কে 'i' দিয়ে রিপ্লেস করুন

mysql> UPDATE UserInformation 
    -> SET UserPost = CONCAT(
    ->     REPLACE(LEFT(UserPost, INSTR(UserPost, 'k')), 'k', 'i'),
    ->     SUBSTRING(UserPost, INSTR(UserPost, 'k') + 1)
    -> );
Query OK, 3 rows affected (0.16 sec)

আপডেটের পর:

mysql> SELECT * FROM UserInformation;
+--------+----------+----------------------------+
| UserId | UserName | UserPost                   |
+--------+----------+----------------------------+
|      1 | Larry    | This is a MySQL query      |
|      2 | Mike     | This is not a java program |
|      3 | Sam      | This is a SQL syntax       |
+--------+----------+----------------------------+
3 rows in set (0.00 sec)

ব্যাখ্যা: প্রতিটি রোয়ে শুধু প্রথম 'k' অক্ষরটি 'i' দিয়ে রিপ্লেস হয়েছে, বাকি 'k' গুলো অপরিবর্তিত রয়েছে।

  1. MySQL에서 ^(캐럿) 문자가 포함된 컬럼명 찾기 (INFORMATION_SCHEMA 활용)

  2. MySQL-এ টেবিলে নেই এমন মানগুলো কোয়েরি করে বের করা (UNION ALL + NOT EXISTS)

  3. MySQL-এ প্রথম অক্ষর বড় এবং বাকি ছোট করে আপডেট করা

  4. MySQL-এ স্ট্রিংয়ের প্রথম পুনরাবৃত্ত মানটিই রিপ্লেস করা