Jika Anda terbiasa dengan SQL Server, Anda mungkin tahu bahwa Anda dapat menggunakan STUFF()
T-SQL berfungsi untuk menyisipkan string ke dalam string. Ternyata, MySQL memiliki fungsi yang serupa – tetapi dengan nama yang berbeda.
MySQL INSERT()
fungsi pada dasarnya melakukan hal yang sama dengan T-SQL STUFF()
fungsi tidak.
Dengan pengecualian beberapa perbedaan kecil (lihat di bawah), kedua fungsi bekerja persis sama.
Sintaks
Berikut sintaks resmi dari masing-masing fungsi ini.
T-SQL – Fungsi STUFF()
STUFF ( character_expression , start , length , replaceWith_expression )
MySQL – Fungsi INSERT()
INSERT(str,pos,len,newstr)
Meskipun masing-masing definisi ini menggunakan terminologi yang berbeda, pada dasarnya mereka melakukan hal yang sama.
Contoh
Berikut adalah contoh dari masing-masing fungsi ini dalam tindakan.
T-SQL – Fungsi STUFF()
SELECT STUFF('Cats and dogs', 6, 3, 'like');
Hasil:
Cats like dogs
MySQL – Fungsi INSERT()
SELECT INSERT('Cats and dogs', 6, 3, 'like');
Hasil:
Cats like dogs
Seperti yang Anda lihat, satu-satunya perbedaan adalah nama fungsinya. Kita dapat melakukan port satu ke yang lain hanya dengan mengubah nama fungsi.
Perbedaan Antara STUFF() dan INSERT()
Ada beberapa perbedaan dalam cara kerja fungsi-fungsi ini. Secara khusus, dua perbedaan utama adalah cara mereka menangani:
- Posisi di luar jangkauan
- Nilai NULL
Perbedaan ini dijelaskan di bawah ini.
Posisi Di Luar Jangkauan
Jika Anda mencoba menyisipkan pada posisi yang berada di luar panjang string asli, INSERT()
MySQL fungsi akan mengembalikan string asli. Di sisi lain, STUFF()
T-SQL fungsi akan mengembalikan NULL
.
T-SQL – Fungsi STUFF()
SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');
Hasil:
NULL
MySQL – Fungsi INSERT()
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
Hasil:
Cats and dogs
Nilai NULL
Kedua fungsi ini juga berbeda dalam cara menangani nilai NULL yang Anda coba masukkan.
T-SQL – Fungsi STUFF()
SELECT STUFF('Cats and dogs', 6, 3, NULL);
Hasil:
Cats dogs
T-SQL – Fungsi INSERT()
SELECT INSERT('Cats and dogs', 6, 3, NULL);
Hasil:
NULL