Listahan ng mga function ng string

Higit pang mga function kaysa sa petsa at oras - ang uri lamang ng String. Alin sa SQL ay ibinibigay ng mga uri ng CHAR(n) at VARCHAR(n). Alalahanin natin ang pinakasikat sa kanila:

Function Paglalarawan
1 LENGTH(str) Ibinabalik ang haba ng naipasa na string sa bytes
2 CHAR_LENGTH(str) Ibinabalik ang haba ng naipasa na string sa mga char
3 LOCATE(substr,str), Naghahanap ng substring sa isang string na katulad ng indexOf() na pamamaraan
4 LOCATE(substr,str,pos) Naghahanap ng substring sa isang string na nagsisimula sa pos
5 CONCAT(str1,str2,...) Pinagsasama-sama ang maraming linya
6 SUBSTR(), SUBSTRING() Ibinabalik ang isang substring na ibinigay ng isang hanay ng mga character
7 LOWER(str) Kino-convert ang isang string sa lowercase
8 UPPER(str) Kino-convert ang isang string sa uppercase
9 PALITAN() Pinapalitan ang isang substring sa isang string
10 MATCH() Sinusuri kung ang isang string ay tumutugma sa isang ibinigay na pattern
labing-isa TRIM(str) Pinuputol ang mga walang laman na character sa simula at dulo ng isang string
12 LTRIM(str) Pinuputol ang mga walang laman na character sa simula ng isang string
13 RTIM(str) Pinuputol ang mga walang laman na character sa dulo ng isang string
14 TO_BASE64(str) Kino-convert ang isang string sa Base64
15 FROM_BASE64(str) Kino-convert ang isang string mula sa Base64

Sinadya kong i-grupo ang mga function sa maliliit na grupo para mas madaling maunawaan kung paano magtrabaho sa kanila. Sa ibaba ay isasaalang-alang natin ang isang function mula sa bawat pangkat. Makakahanap ka ng kumpletong listahan ng mga function para sa pagtatrabaho sa mga string sa opisyal na dokumentasyon .

I-convert natin ang string

Unahin natin ang pinakasimpleng mga function na nagko-convert lamang ng isang string sa isang bahagyang naiibang anyo. Halimbawa, i-convert ang isang string sa upper at lower case. Sa pangkalahatan, ang kanilang pag-uugali ay katulad ng parehong mga pag-andar sa wikang Java.

Kaya magbibigay lang ako ng isang talahanayan na may ilang mga halimbawa.

# Hiling Resulta
1 PUMILI NG HABA ('text') 4
2 PUMILI NG HABA ('Hello') 12
3 SELECT LOWER ('Hi') Kamusta
4 SELECT UPPER ('Hello') KAMUSTA
5 PUMILI NG SUBSTR ('Hello', 2, 3) riv
6 SELECT SUBSTR ('Hi, kumusta ka?', 8) Kamusta ka?

Gumagana ang mga function tulad ng inaasahan, tulad ng kanilang mga katapat mula sa JDK.

Ang tanging caveat: sa unang linya, ang resulta ay 4, hindi 8. Ang bagay ay ang 1 byte (ASCII encoding) ay ginagamit sa kahilingan na mag-encode ng mga Latin na character. Ngunit kung nagtatrabaho ka sa data mula sa database, ang haba ng string ay depende sa mga setting ng pag-encode ng database . Makakakita ka ng maraming mga sorpresa habang nagtatrabaho sa database :)

Mga kumplikadong aksyon na may mga string

Well, tingnan natin ang mas kumplikadong mga bagay kapag nagtatrabaho sa mga string. Ano ang maiisip mo...

Ipakita natin ang mga gawain mula sa talahanayan ng gawain, at kung lumipas na ang deadline ng gawain, pagkatapos ay idagdag ang salitang EXPIRED sa paglalarawan ng gawain!

Mukhang kawili-wili. Bagama't hindi pa tayo natututo ng mga kumplikadong kondisyon, kaya't pasimplehin natin ng kaunti ang gawain. Sumulat lang tayo ng query na magpapakita ng listahan ng mga nakaraang gawain, ngunit tiyaking idagdag ang salitang “EXPIRED!” sa pamagat. .

Upang gawin ito, kakailanganin nating gamitin ang CONCAT function:

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

Ang magiging resulta ng query na ito ay:

concat('EXPIRED!', pangalan)
EXPIRED NA! Ayusin ang isang bug sa frontend

Rekomendasyon. Kung kailangan mo lang i-convert ang data sa isang bahagyang naiibang anyo, maaari rin itong gawin sa antas ng Java code. Ngunit kung gusto mong gumamit ng SQL server-side string functions (sa loob WHERE), tiyak na hindi mo magagawa nang wala ang mga ito.