Di MySQL, Anda dapat menggunakan INSERT()
berfungsi untuk menyisipkan string ke string lain.
Anda dapat mengganti bagian dari string dengan string lain (misalnya mengganti kata), atau Anda dapat menyisipkannya sambil mempertahankan string asli (misalnya menambahkan kata). Fungsi menerima 4 argumen yang menentukan apa string asli, posisi untuk menyisipkan string baru, jumlah karakter yang akan dihapus dari string asli, dan string baru yang akan disisipkan.
Berikut sintaksnya:
INSERT(str,pos,len,newstr)
Dimana str
adalah string asli, pos
adalah posisi string baru akan dimasukkan, len
adalah jumlah karakter yang akan dihapus dari string asli, dan newstr
adalah string baru untuk disisipkan.
Ganti Kata
Berikut adalah contoh di mana saya menggunakan INSERT()
untuk mengganti kata dalam string:
SELECT INSERT('Cats and dogs', 6, 3, 'like');
Hasil:
Cats like dogs
Ini secara efektif menggantikan kata and
dengan kata like
. Saya menggunakan 6
karena kata dan dimulai pada tanda 6 karakter, dan saya menggunakan 3
karena itu berapa banyak karakter yang ingin saya hapus (kata and
panjangnya 3 karakter).
Menyisipkan Kata
Di sini saya cukup menyisipkan kata tanpa menghapus apa pun dari string asli:
SELECT INSERT('Cats and dogs', 10, 0, 'big ');
Hasil:
Cats and big dogs
Alasan mengapa ini tidak menghapus apa pun dari string asli adalah karena saya menetapkan 0
(yang berarti nol karakter harus dihapus).
Nilai Di Luar Rentang
Jika Anda menentukan posisi yang berada di luar panjang string asli, MySQL akan mengembalikan string asli tidak berubah.
Contoh:
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
Hasil:
Cats and dogs
Berikut contoh lain di mana saya menggunakan posisi awal negatif:
SELECT INSERT('Cats and dogs', -1, 4, 'rabbits');
Hasil:
Cats and dogs
Ini adalah salah satu perbedaan antara INSERT()
MySQL fungsi dan STUFF()
Transact-SQL> fungsi. Dalam T-SQL, STUFF()
fungsi akan mengembalikan NULL
dalam kasus ini.
Memasukkan Nilai NULL
Area lain di mana INSERT()
MySQL berbeda dengan STUFF()
T-SQL adalah dengan nilai NULL. Jika Anda mencoba memasukkan nilai NULL, MySQL akan mengembalikan NULL
.
SELECT INSERT('Cats and dogs', 6, 3, NULL);
Hasil:
NULL