Subcadena MySQL per trobar un personatge i tornar a l'esquerra

MySQL inclou una sèrie de funcions de manipulació de cadenes integrades que són similars a les funcions que ofereixen els llenguatges de scripts web com PHP. Podeu utilitzar aquestes funcions tant a les clàusules "SELECT" com a "WHERE" en una consulta MySQL. Podeu trobar un caràcter en una cadena i tornar tot a l'esquerra d'aquest caràcter combinant la sortida de dues funcions de cadena diferents.

Inspeccioneu les dades

Determineu com es formaten les dades de la base de dades per a un camp en què voleu basar una consulta MySQL. Mitjançant una eina com PHPMyAdmin, navegueu pels continguts de la base de dades per verificar el format dels camps de dades. Per exemple, un camp que conté una sèrie de números seguits d'una lletra i una altra sèrie de números té un format com "009378M38293".

ESQUERRA

La funció "ESQUERRA" de MySQL retorna un nombre especificat de caràcters des del començament d'una cadena. Per exemple:

ESQUERRA (article, 10)

retorna els 10 primers caràcters de la cadena del camp "element".

SITUAR

Per extreure tots els caràcters a l'esquerra del lloc en una cadena en què es produeix una lletra, determineu la posició en què es troba la lletra amb la funció "LOCALITZAR" de MySQL. Per exemple, si el camp "element" és "009378M38293", llavors:

SITUAR ("M", article)

en retorna set, que és la posició de la lletra "M."

Combinant ESQUERRA i UBICACIÓ

Per tornar tots els caràcters a l'esquerra d'una lletra com ara "M", podeu combinar els resultats de les funcions "SITUAR" i "ESQUERRA". Com que no voleu incloure la lletra al conjunt de resultats, resteu-ne una del resultat de la funció "SITUAR". Utilitzeu aquest valor com a nombre de caràcters que vulgueu retornar per la funció "ESQUERRA". Per exemple, si el camp "element" conté "009378M38293", llavors:

ESQUERRA (article, LOCALITZA ("M", article) -1) és el mateix que ESQUERRA (article, 6) que retorna "009378".

Afegint una clàusula WHERE

Quan creeu una consulta MySQL mitjançant aquestes funcions, és possible que vulgueu incloure resultats només per als camps que contenen la lletra "M" perquè el vostre conjunt de resultats no contingui files en blanc. Per fer-ho, utilitzeu la funció "SITUAR" una segona vegada a la consulta amb la clàusula "WHERE" per proporcionar resultats només quan existeixi la lletra que esteu cercant; és aleshores quan la funció "SITUAR" retorna un nombre superior a zero.

Resultat

Combineu-ho tot en una única sentència MySQL. Per exemple, la sentència següent retorna un conjunt de resultats format pels caràcters del camp "elements" a l'esquerra de la lletra "M" per a cada camp "elements" que conté la lletra "M:"

SELECCIÓ ESQUERRA (article, LOCALITZA ("M", article) -1) AS itemleft DE articles ON SITUAR ("M", article)>0

Missatges recents