MySQL Substring upang Makahanap ng isang Character at Bumalik sa Kaliwa

Ang MySQL ay nagsasama ng isang bilang ng mga built-in na pag-andar ng pagmamanipula ng string na katulad ng mga pagpapaandar na ibinigay ng mga wika sa pagsulat ng Web tulad ng PHP. Maaari mong gamitin ang mga pagpapaandar na ito sa parehong mga "PUMILI" at ang "ASA" na mga sugnay sa isang query sa MySQL. Maaari kang makahanap ng isang character sa isang string at ibalik ang lahat sa kaliwa ng character na iyon sa pamamagitan ng pagsasama ng output ng dalawang magkakaibang mga pag-andar ng string.

Suriin ang Data

Tukuyin kung paano naka-format ang data sa database para sa isang patlang kung saan balak mong ibase ang isang query sa MySQL. Gamit ang isang tool tulad ng PHPMyAdmin, i-browse ang mga nilalaman ng database upang ma-verify ang format ng mga patlang ng data. Halimbawa, ang isang patlang na naglalaman ng isang serye ng mga numero na sinusundan ng isang liham at isa pang serye ng mga numero ay may isang format tulad ng "009378M38293."

KALIWAN

Ang pagpapaandar ng MySQL "LEFT" ay nagbabalik ng isang tinukoy na bilang ng mga character mula sa simula ng isang string. Halimbawa:

KALIWA (item, 10)

ibabalik ang unang 10 character mula sa string sa patlang na "item".

MAKAKATAG

Upang makuha ang lahat ng mga character sa kaliwa ng lugar sa isang string kung saan nangyayari ang isang titik, tukuyin ang posisyon na nangyayari ang sulat sa pagpapaandar ng MySQL na "LOCATE". Halimbawa, kung ang patlang na "item" ay "009378M38293," kung gayon:

LOCATE ("M", item)

nagbabalik ng pito, na kung saan ay ang posisyon ng titik na "M."

Pinagsasama ang LEFT at LOCATE

Upang maibalik ang lahat ng mga character sa kaliwa ng isang titik tulad ng "M," maaari mong pagsamahin ang mga resulta ng "LOCATE" at "LEFT" na mga pagpapaandar. Dahil hindi mo nais na isama ang titik sa hanay ng resulta, ibawas ang isa mula sa resulta ng "LOCATE" na pagpapaandar. Gamitin ang halagang iyon bilang bilang ng mga character na nais mong ibalik ng pagpapa-andar ng "LEFT". Halimbawa, kung ang patlang na "item" ay naglalaman ng "009378M38293," kung gayon:

KALIWA (item, LOCATE ("M", item) -1) ay kapareho ng LEFT (item, 6) na magbabalik ng "009378."

Pagdaragdag KUNG SAAN Sugnay

Kapag bumuo ka ng isang query sa MySQL gamit ang mga pagpapaandar na ito, baka gusto mong isama lamang ang mga resulta para sa mga patlang na naglalaman ng titik na "M" upang ang iyong hanay ng resulta ay hindi naglalaman ng mga blangko na hilera. Upang magawa ito, gamitin ang pagpapaandar na "LOCATE" sa pangalawang pagkakataon sa query na may sugnay na "ASAN" upang makapagbigay lamang ng mga resulta kapag mayroon ang liham na iyong hinahanap; iyon ay kapag ang function na "LOCATE" ay nagbabalik ng isang bilang na mas malaki sa zero.

Resulta

Pagsamahin ang lahat sa isang solong pahayag ng MySQL. Halimbawa, ang sumusunod na pahayag ay nagbabalik ng isang hanay ng resulta na binubuo ng mga character sa patlang na "item" sa kaliwa ng titik na "M" para sa bawat "item" na patlang na naglalaman ng titik na "M:"

PUMILI NG KALIWA (item, LOCATE ("M", item) -1) AS itemleft MULA SA mga item SAAN NAKAKAUSAP ("M", item)>0

Kamakailang mga Post

$config[zx-auto] not found$config[zx-overlay] not found