Dúvida Função Copy no MySQL

14/03/2013

4

Bom dia,

Estou querendo fazer um select pra verificar se um número é fixo ou celular.

Ex:

Aqui o telefone fixo sempre começam com 35 ou 31, assim:

(xx) 3511-1234
(xx) 3111-1234

Quero pegar esses dois números e fazer a validação. No Delphi eu uso a Função Copy, como seria no MySQL ?

Grato.

Responder

Posts

14/03/2013

Syspan Ltda

Bom dia, a função no mysql e a MID() ou SUBSTRING()...
Exemplo de uso dela e Select MID('3511-1234',1,2)...
Um exemplo melhor utilizando a função MID() e o IF

SELECT IF(((MID('3511-1234',1,2)=35) OR (MID('3111-1234',1,2)=31)),'FONE','CELULAR');
Responder

14/03/2013

Vander Carlos

Tentei adaptar aqui mas não ta dando certo:

SELECT if(((MID(cadcliente.resp_cel,5, 6) = 35)
OR (MID(cadcliente.resp_cel,5, 6)= 31)),'Fixo','Celular') as Tipo,

cadcliente.cliente, cadcliente.reponsavel, cadcliente.resp_celular 

FROM cadcliente, cadmatricula 
where cadcliente.resp_celular <> ''   
and cadcliente.codcli = cadmatricula.codcli 
group by cadcliente.reponsavel;


Lookup Error - MySQL Database Error: Unknown column 'cadcliente.resp_cel' in 'field list'

Responder

14/03/2013

Joel Rodrigues

O nome do campo não é "resp_celular"?
Responder

15/03/2013

Vander Carlos

Nossa, não tava vendo isso. É resp_celular mesmo.

Só mais uma coisa.

SELECT if(((MID(cadcliente.resp_celular,5, 6) = 35)
OR (MID(cadcliente.resp_celular,5, 6)= 31)),'Fixo','Celular')


Esse parâmetro, 'Fixo', 'Celular'. Funciona como ?
Responder

15/03/2013

Joel Rodrigues

Você tem uma condição dentro do IF, que verifica se o telefone começa com 35 ou 31. Se a condição dentro do IF for verdadeira, então o campo será preenchido com o primeiro valor (Fixo), senão, será preenchido com o segundo (Celular).
A estrutura é a seguinte:
IF (condição, valor se verdadeiro, valor se falso)

Não sei se fui claro, então caso persista a dúvida, é só falar.a
Responder

16/03/2013

Vander Carlos

Muito obrigado Joel Rodrigues.

Abraços.
Responder

16/03/2013

Joel Rodrigues

Valeu, amigo. Que bom que sua dúvida foi sanada.
Estou marcando este tópico como Concluído.
Abraço.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar