Substring MySQL para encontrar um caractere e retornar à esquerda

O MySQL inclui várias funções de manipulação de string integradas que são semelhantes às funções fornecidas por linguagens de script da Web, como PHP. Você pode usar essas funções nas cláusulas "SELECT" e "WHERE" em uma consulta MySQL. Você pode encontrar um caractere em uma string e retornar tudo à esquerda desse caractere combinando a saída de duas funções de string diferentes.

Inspecionar dados

Determine como os dados no banco de dados são formatados para um campo no qual você planeja basear uma consulta MySQL. Usando uma ferramenta como PHPMyAdmin, navegue pelo conteúdo do banco de dados para verificar o formato dos campos de dados. Por exemplo, um campo que contém uma série de números seguidos por uma letra e outra série de números tem um formato como "009378M38293".

DEIXOU

A função "LEFT" do MySQL retorna um número especificado de caracteres do início de uma string. Por exemplo:

DEIXOU(item, 10)

retorna os primeiros 10 caracteres da string no campo "item".

LOCALIZAR

Para extrair todos os caracteres à esquerda do local em uma string em que uma letra ocorre, determine a posição em que a letra ocorre com a função "LOCATE" do MySQL. Por exemplo, se o campo "item" for "009378M38293", então:

LOCALIZAR ("M", item)

retorna sete, que é a posição da letra "M".

Combinando LEFT e LOCATE

Para retornar todos os caracteres à esquerda de uma letra, como "M", você pode combinar os resultados das funções "LOCALIZAR" e "ESQUERDA". Como você não deseja incluir a letra no conjunto de resultados, subtraia um do resultado da função "LOCALIZAR". Use esse valor como o número de caracteres que você deseja que seja retornado pela função "ESQUERDA". Por exemplo, se o campo "item" contiver "009378M38293", então:

DEIXOU(item, LOCALIZAR ("M", item) -1) é o mesmo que LEFT (item, 6) que retorna "009378."

Adicionando Cláusula WHERE

Quando você constrói uma consulta MySQL usando essas funções, você pode querer incluir resultados apenas para campos que contenham a letra "M" para que seu conjunto de resultados não contenha linhas em branco. Para fazer isso, use a função "LOCATE" uma segunda vez na consulta com a cláusula "WHERE" para fornecer resultados apenas quando a letra que você está procurando existe; é quando a função "LOCALIZAR" retorna um número maior que zero.

Resultado

Combine tudo em uma única instrução MySQL. Por exemplo, a instrução a seguir retorna um conjunto de resultados que consiste nos caracteres do campo "itens" à esquerda da letra "M" para cada campo "itens" que contém a letra "M:"

SELECIONE À ESQUERDA (item, LOCALIZAR ("M", item) -1) AS item deixado A PARTIR DE Itens ONDE LOCALIZAR ("M", item)>0

Postagens recentes

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