Senarai fungsi rentetan

Lebih banyak fungsi daripada tarikh dan masa - hanya jenis String. Yang mana dalam SQL diberikan oleh jenis CHAR(n) dan VARCHAR(n). Mari kita ingat yang paling popular daripada mereka:

Fungsi Penerangan
1 LENGTH(str) Mengembalikan panjang rentetan yang diluluskan dalam bait
2 CHAR_LENGTH(str) Mengembalikan panjang rentetan yang diluluskan dalam aksara
3 LOCATE(substr,str), Mencari subrentetan dalam rentetan yang serupa dengan kaedah indexOf().
4 LOCATE(substr,str,pos) Mencari subrentetan dalam rentetan bermula pada pos
5 CONCAT(str1,str2,...) Menggabungkan berbilang baris
6 SUBSTR(), SUBSTRING() Mengembalikan subrentetan yang diberikan oleh julat aksara
7 RENDAH(str) Menukar rentetan kepada huruf kecil
8 ATAS(str) Menukar rentetan kepada huruf besar
9 GANTI() Menggantikan subrentetan dalam rentetan
10 PERLAWANAN() Menyemak sama ada rentetan sepadan dengan corak yang diberikan
sebelas TRIM(str) Memangkas aksara kosong pada permulaan dan penghujung rentetan
12 LTRIM(str) Memangkas aksara kosong pada permulaan rentetan
13 RTIM(str) Memangkas aksara kosong di hujung rentetan
14 TO_BASE64(str) Menukar rentetan kepada Base64
15 FROM_BASE64(str) Menukar rentetan daripada Base64

Saya sengaja mengumpulkan fungsi ke dalam kumpulan kecil untuk memudahkan anda memahami cara bekerja dengannya. Di bawah ini kita akan mempertimbangkan satu fungsi daripada setiap kumpulan. Anda boleh menemui senarai lengkap fungsi untuk bekerja dengan rentetan dalam dokumentasi rasmi .

Mari tukar rentetan

Mari kita berurusan dengan fungsi paling mudah yang hanya menukar rentetan kepada bentuk yang sedikit berbeza. Sebagai contoh, tukar rentetan kepada huruf besar dan kecil. Secara umum, tingkah laku mereka adalah serupa dengan fungsi yang sama dalam bahasa Jawa.

Jadi saya hanya akan memberikan jadual dengan beberapa contoh.

# Permintaan Hasilnya
1 PILIH PANJANG ('teks') 4
2 PILIH PANJANG ('Hello') 12
3 PILIH BAWAH ('Hai') Hello
4 PILIH ATAS ('Hello') HELLO
5 PILIH SUBSTR ('Hello', 2, 3) riv
6 PILIH SUBSTR ('Hai, apa khabar?', 8) Apa khabar?

Fungsi berfungsi seperti yang diharapkan, sama seperti rakan sejawatannya dari JDK.

Satu-satunya kaveat: dalam baris pertama, hasilnya ialah 4, bukan 8. Perkaranya ialah 1 bait (pengekodan ASCII) digunakan dalam permintaan untuk mengekod aksara Latin. Tetapi jika anda bekerja dengan data daripada pangkalan data, maka panjang rentetan akan bergantung pada tetapan pengekodan pangkalan data . Anda akan mendapati banyak kejutan semasa bekerja dengan pangkalan data :)

Tindakan kompleks dengan rentetan

Baiklah, mari kita lihat perkara yang lebih kompleks apabila bekerja dengan rentetan. Apa yang anda akan datangkan...

Mari paparkan tugasan daripada jadual tugasan, dan jika tarikh akhir tugasan telah pun berlalu, kemudian tambahkan perkataan TAMAT TEMPOH pada perihalan tugasan!

Bunyinya menarik. Walaupun kita masih belum mempelajari syarat yang kompleks, jadi mari kita permudahkan sedikit tugas. Mari kita tulis pertanyaan yang akan memaparkan senarai tugasan lepas, tetapi pastikan anda menambah perkataan “TAMAT TEMPOH!” pada tajuk. .

Untuk melakukan ini, kita perlu menggunakan fungsi CONCAT:

   SELECT CONCAT( 'EXPIRED! ', name) FROM task 
   WHERE deadline < CURDATE() 

Hasil daripada pertanyaan ini ialah:

concat('TAMAT TEMPOH! ', nama)
TAMAT TEMPOH! Betulkan pepijat pada bahagian hadapan

Syor. Jika anda hanya perlu menukar data kepada bentuk yang sedikit berbeza, maka ini juga boleh dilakukan pada tahap kod Java. Tetapi jika anda ingin menggunakan fungsi rentetan sisi pelayan SQL (di dalam WHERE), maka anda pasti tidak boleh melakukannya tanpanya.