MySQL में किसी वर्ण की केवल पहली घटना को बदलना
आप CONCAT(), REPLACE(), LEFT(), SUBSTRING() और 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
-> );
डेटा डालें (सभी में 'Thks' है):
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');
पहले 'k' को 'i' से बदलें:
mysql> update UserInformation
-> set UserPost = CONCAT(
REPLACE(LEFT(UserPost, INSTR(UserPost, 'k')), 'k', 'i'),
SUBSTRING(UserPost, INSTR(UserPost, 'k') + 1)
);
परिणाम:
+--------+----------+----------------------------+ | 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 | +--------+----------+----------------------------+
कैसे काम करता है
INSTR(UserPost, 'k')- पहले 'k' की स्थिति ढूंढता हैLEFT(UserPost, pos)- उस स्थिति तक का भाग लेता हैREPLACE(..., 'k', 'i')- उस भाग में 'k' को 'i' से बदलता हैSUBSTRING(UserPost, pos + 1)- शेष भाग लेता हैCONCAT()- दोनों भागों को जोड़ता है