Funkcia MySQL INSTR().

Funkcia Mysql Instr



V tomto návode sa naučíme, ako pomocou funkcie MySQL INSTR() určiť polohu prvého výskytu daného podreťazca.

Funkcia MySQL INSTR().

Pomocou funkcie instr() môžeme poskytnúť reťazec a podreťazec. Funkcia určí, či podreťazec existuje v zdrojovom reťazci. Ak podreťazec existuje, funkcia vráti pozíciu prvého výskytu podreťazca v zdrojovom reťazci.

Ak podreťazec v zdrojovom reťazci neexistuje, funkcia vráti 0.







Nasledujúci text demonštruje syntax funkcie instr():



INSTR(reťazec_zdroja, podreťazec);

Funkcia akceptuje dva hlavné parametre:



  1. Src_string odkazuje na zdrojový reťazec, v ktorom chcete hľadať.
  2. Sub_string definuje podreťazec, ktorý hľadáte.

Je dobré mať na pamäti, že funkcia instr() nerozlišuje veľké a malé písmená. Funkcia teda nájde iba zodpovedajúce vzory bez ohľadu na veľkosť písmen,





Ak chcete vykonať vyhľadávanie s rozlíšením malých a veľkých písmen, môžete použiť iné nástroje, ako je napríklad binárny operátor.

Príklad použitia funkcie

Nasledujúce príklady demonštrujú, ako môžeme použiť funkciu instr() na vyhľadanie konkrétneho podreťazca.



SELECT INSTR('MySQL je úžasný databázový stroj', 'databáza') as poz;

Vyššie uvedený príklad vráti počiatočnú pozíciu reťazca „databáza“ zo zdrojového reťazca. V tomto prípade je pozícia databázového reťazca 21, ako je uvedené vo výstupe nižšie:

poz |

---+

21|

Príklad 2

Na konverziu reťazca na malé alebo veľké písmená môžeme použiť funkcie lower() alebo upper. To nám môže pomôcť prekonať povahu funkcie, v ktorej sa rozlišujú malé a veľké písmená.

Príklad:

SELECT INSTR(lower('MySQL je úžasný databázový stroj'), lower('DATABASE')) as pos;

výsledok:

poz |

---+

21|

Toto vráti podobnú hodnotu ako v prvom príklade, pretože zdrojový reťazec a podreťazec sa pred operáciou vyhľadávania skonvertujú na malé písmená.

Príklad 3

Môžeme tiež použiť funkciu instr() so stĺpcom tabuľky, ako je uvedené v syntaxi nižšie.

SELECT INSTR(názov_stĺpca, 'podreťazec')

FROM názov_tabuľky;

Príklad:

CREATE TABLE blogy (

id INT NOT NULL PRIMÁRNY KĽÚČ AUTO_INCREMENT,

názov VARCHAR(255) NOT NULL,

obsah TEXT NIE JE NULL,

date_posted DATE NOT NULL,

autor VARCHAR(255) NOT NULL

);

Vložte nejaké údaje:

INSERT INTO blogs (názov, obsah, dátum uverejnenia, autor)

VALUES ('Môj prvý blogový príspevok', 'Toto je obsah môjho prvého blogového príspevku.', '2022-12-09', 'Jane Doe');

INSERT INTO blogs (názov, obsah, dátum uverejnenia, autor)

VALUES ('Môj druhý blogový príspevok', 'Toto je obsah môjho druhého blogového príspevku.', '2022-12-10', 'Jane Doe');

INSERT INTO blogs (názov, obsah, dátum uverejnenia, autor)

VALUES ('Môj tretí blogový príspevok', 'Toto je obsah môjho tretieho blogového príspevku.', '2022-12-11', 'Jane Doe');

vyberte * z blogov;

Výsledná tabuľka:

Môžeme použiť funkciu instr() na získanie pozície podreťazca „blog“ v stĺpci obsahu, ako je znázornené:

vybrať názov, instr(obsah, 'príspevok') z blogov;

výsledok:

Záver

V tomto návode ste sa naučili, ako používať funkciu INSTR() v MySQL na nájdenie pozície podreťazca v reťazci. Funkcia rozlišuje malé a veľké písmená. Preto možno budete musieť použiť funkcie, ako je spodná a horná, na konverziu vyhľadávacích reťazcov na požadované prípady.