MySQL SUBSTRING() Imeelezwa: Toa Sehemu za Mstari kwa Mifano

1. Ni Nini Kazi ya SUBSTRING?

Kazi ya SUBSTRING ni kazi muhimu ya MySQL inayotumiwa kuchukua substring kutoka kwa mnyororo. Kwa kazi hii, unaweza kuchukua sehemu unayohitaji tu kutoka kwa data iliyohifadhiwa katika hifadhidata. Kwa mfano, ni muhimu wakati unataka kuchukua sehemu ya kikoa kutoka anwani ya barua pepe ya mtumiaji, au kupata sehemu maalum kutoka kwa msimbo wa bidhaa.

1.1 Sintaksisi ya Msingi

Sintaksisi ya msingi ya kazi ya SUBSTRING ni kama ifuatavyo:

SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
  • str : Mnyororo wa kuchukua kutoka.
  • pos : Nafasi ya kuanza (inaanza kutoka 1).
  • len : Idadi ya herufi za kuchukua (hiari).

Ikiwa pos ni thamani chanya, MySQL inahesabu mbele kutoka mwanzo wa mnyororo. Ikiwa ni hasi, MySQL inahesabu nyuma kutoka mwisho wa mnyororo. Ikiwa len imeachwa, MySQL inachukua kutoka nafasi iliyotajwa hadi mwisho wa mnyororo.

1.2 Matumizi ya Kazi ya SUBSTRING

Kazi hii inatumiwa kupanga data ya mnyororo na kuchukua sehemu maalum, na hivyo kufanya iwe rahisi kutafuta na kusindika taarifa kwa ufanisi katika hifadhidata.

2. Matumizi ya Msingi ya Kazi ya SUBSTRING

Ili kuelewa misingi, hebu tuangalie mifano rahisi.

2.1 Kuchukua Sehemu ya Mnyororo

Swali lifuatalo linachukua herufi 6 kuanzia herufi ya 3 ya mnyororo “Hello, World!”.

SELECT SUBSTRING('Hello, World!', 3, 6);

Matokeo ni "llo, W". Kwa kuwa pos ni 3, uchukuzi unaanza kutoka herufi ya 3, na kwa kuwa len ni 6, herufi 6 zinachukuliwa.

2.2 Kuacha Kigeuza cha Urefu

Ikiwa utaacha len, MySQL inachukua kutoka nafasi iliyotajwa hadi mwisho wa mnyororo.

SELECT SUBSTRING('Hello, World!', 8);

Matokeo ni "World!", ambayo inachukua kila kitu kutoka herufi ya 8 hadi mwisho.

2.3 Kutumia Nafasi Haswa

Ikiwa utatumia thamani hasi, unaweza kutaja nafasi kutoka mwisho wa mnyororo.

SELECT SUBSTRING('Hello, World!', -5);

Swali hili linarejesha "orld!", likichukua herufi 5 za mwisho.

3. Matumizi ya Vitendo ya Kazi ya SUBSTRING

Kazi ya SUBSTRING inatumiwa mara kwa mara katika shughuli za data za ulimwengu halisi. Hapa kuna mifano ya vitendo.

3.1 Kuchukua Kikoa kutoka Anwani ya Barua Pepe

Kwa kuunganisha SUBSTRING na LOCATE, unaweza kuchukua sehemu ya kikoa kutoka anwani ya barua pepe.

SELECT email, SUBSTRING(email, LOCATE('@', email) + 1) AS domain FROM users;

Swali hili linachukua mnyororo baada ya “@” na kuirejesha sehemu ya kikoa pekee.

3.2 Kuchukua Sehemu ya Msimbo wa Bidhaa

Mfano huu unachukua sehemu maalum ya msimbo wa bidhaa.

SELECT product_code, SUBSTRING(product_code, 5, 4) AS product_id FROM products;

Katika swali hili, herufi 4 kuanzia herufi ya 5 ya msimbo wa bidhaa zinachukuliwa na kuonyeshwa kama safu mpya inayoitwa product_id.

3.3 Kuitumia katika Swali Ndogo

Kwa kuunganisha na swali ndogo, unaweza kuchukua data chini ya hali ngumu zaidi.

SELECT id, SUBSTRING(description, 1, 10) AS short_desc FROM (SELECT * FROM products WHERE category = 'Electronics') AS sub;

Swali hili linachukua herufi 10 za kwanza za description kutoka bidhaa ambapo category ni ‘Electronics’.

4. Kulinganisha na Kazi Zingine za Mnyororo

Kazi zingine zinazoweza kutumiwa kwa madhumuni sawa na SUBSTRING ni pamoja na LEFT, RIGHT, na SUBSTR.

4.1 Kazi za LEFT na RIGHT

  • LEFT(str, len) : Inachukua idadi maalum ya herufi kutoka mwanzo wa mnyororo.
  • RIGHT(str, len) : Inachukua idadi maalum ya herufi kutoka mwisho wa mnyororo.
    SELECT LEFT('Hello, World!', 5);  -- "Hello"
    SELECT RIGHT('Hello, World!', 6); -- "World!"
    

Kazi hizi ni rahisi wakati unataka kuchukua substring kutoka mwanzo au mwisho wa mnyororo.

4.2 Kazi ya SUBSTR

SUBSTR ni jina la ziada la SUBSTRING, hivyo inaweza kutumika kwa njia ileile.

SELECT SUBSTR('Hello, World!', 8); -- "World!"

Hii swali inarudisha "World!", kama vile SUBSTRING.

5. Matumizi ya Juu na Uboreshaji wa Kazi kwa Kazi ya SUBSTRING

Sehemu hii inaelezea matumizi ya juu zaidi na mbinu za uboreshaji.

5.1 Uboreshaji wa Utendaji

Kutumia SUBSTRING kwenye seti kubwa za data kunaweza kuathiri utendaji. Ikiwa ni lazima, unda faharasa na kagua mpango wa utekelezaji wa swali. Pia, ikiwa unatoa sehemu ndogo ya maandishi mara kwa mara, fikiria kuhifadhi matokeo kwenye cache.

5.2 Kutumia Katika Clause ya WHERE

Unaweza kutumia SUBSTRING katika clause ya WHERE ili kuchuja rekodi kulingana na hali ya sehemu ndogo ya maandishi.

SELECT * FROM products WHERE SUBSTRING(product_code, 1, 3) = 'ABC';

Swali hili linatafuta bidhaa ambapo herufi 3 za kwanza za product_code ni ‘ABC’.

6. Mifano na Mazoea Mazuri kwa Kazi ya SUBSTRING

Hapa kuna mifano ya vitendo ya kutumia SUBSTRING na mazoea mazuri kwa kazi halisi.

6.1 Msimbo wa Mfano

Mfano ufuatao hugawa jina kamili la mteja katika jina la kwanza na jina la familia.

SELECT name, SUBSTRING(name, 1, LOCATE(' ', name) - 1) AS first_name,
       SUBSTRING(name, LOCATE(' ', name) + 1) AS last_name
FROM customers;

Katika swali hili, majina ya kwanza na ya familia yanatolewa kutoka jina kamili lililogawanywa kwa nafasi.

6.2 Mazoea Mazuri

  • Toa tu kile unachohitaji : Weka urefu wa sehemu ndogo ya maandishi uwe mdogo iwezekanavyo ili kupunguza athari kwa utendaji.
  • Zingatia aina za data : Ikiwa unatumia SUBSTRING kwenye data ya nambari, unaweza kuhitaji kuibadilisha waziwazi kuwa kamba.
  • Fikiria matumizi ya faharasa : Unapotumia SUBSTRING katika clause ya WHERE, faharasa huenda isitumike kwa ufanisi, hivyo zingatia utendaji wa swali kwa makini.

7. Usimamizi wa Makosa na Tofauti za Matoleo

Sehemu hii inashughulikia usimamizi wa makosa wakati wa kutumia SUBSTRING na tofauti kati ya matoleo ya MySQL.

7.1 Usimamizi wa Makosa

Kama nafasi iliyotajwa iko nje ya safu ya maandishi, SUBSTRING inarudisha kamba tupu. Kwa kuwa hii si kosa, inashauriwa kuongeza mantiki ya kuthibitisha matokeo mapema ikiwa inahitajika.

7.2 Tofauti za Matoleo

Kulingana na toleo la MySQL, tabia ya kazi ya SUBSTRING inaweza kutofautiana. Kwa mfano, baadhi ya matoleo ya zamani yanaweza kushughulikia herufi za multi-byte kwa njia tofauti. Angalia ulinganifu kati ya matoleo na tumia hatua zinazofaa inapohitajika.