Ir para conteúdo
Fórum Script Brasil
  • 0

Expressão Regular para transformar uma string de busca MS-Access para


Tiago JS Neves

Pergunta

Olá pessoal :blush:

Este é o meu primeiro poste aqui espera ajudar muitas pessoas além de ser ajudado, tenho ajudado em outras linguagens em outros foruns mais em Mysql é o primeiro, vai devagar comigo. rsrsrs

Bom eu gostaria de passar todo meu sistema para MySQL já tenho tudo pronto até o prorpio banco de dados em MySQL mais o problema maior é a String de Busca, ou de Execução, por exemplo.

Em Access fica assim:

"SELECT sum([Tabela].[Valor]) as [Total], max(iif([Tabela].[Tipo]='Tipo1', 'OK', '')) as [OK], ('<a href=pagina.asp>' & [Código] & '</a>') as [LINK] FROM [Tabela] WHERE [Tabela].[Data]>=#01/01/2008#"

E em MySQL fica assim:

"SELECT sum(`Tabela`.`Valor`) as `Total`, max(if(`Tabela`.`Tipo`='Tipo1', 'OK', '')) as `OK`, concat('<a href=pagina.asp>', `Código`, '</a>') as `LINK` FROM `Tabela` WHERE `Tabela`.`Data`>=#01/01/2008#"

Parece simples apenas mudar a aspas e etc...

Mais há algumas particularidade, como o iif é if e o caoncatenação é feita com função e não operadores.

O que eu prentenderia era fazer um REPLACE com expressão regular para simplesmente transformar apenas com uma função transformar a string.

Estou querendo isso porque vou passar os bancos de dados devagar para Mysql e o que ficaram com Access vai funcionar com a string normal

em um

if (Mysql=true) {

strSQL = transformaemMysql(strSQL);

}

Não sou muito bom em expresão regular mais o meu maior problema é a "concatenação".

Se alguém puder me ajudar.

Agradeço

Abraço! E obrigado pela atenação.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, 'Tiago JS Neves'!

Não estou vendo, nenhum problema ligado ao MySQL ou ao entendimento de sua sintaxe a não ser pelo erro na apresentação da data como literal em sua comparação.

O correto é:

"SELECT sum(`Tabela`.`Valor`) as `Total`, max(if(`Tabela`.`Tipo`='Tipo1', 'OK', '')) as `OK`, concat('<a href=pagina.asp>', `Código`, '</a>') as `LINK` FROM `Tabela` WHERE `Tabela`.`Data`>='2008-01-01'"
Pelo que entendi este é um problema de conversão de string usando a linguagem de programação que você escolheu. Sendo assim informe a linguagem que você está usando para que eu possa transferir este tópico para lá, para que você seja atendido plenamente. Mais uma coisa, Não é exigência do MySQL o uso de crase " ` " para delimitação de nome de tabela ou atributos. Este recurso é opcional. Ou seja, você pode usar assim:
"SELECT sum(Tabela.Valor) as Total, max(if(Tabela.Tipo='Tipo1', 'OK', '')) as OK, concat('<a href=pagina.asp>', `Código`, '</a>') as LINK FROM Tabela WHERE Tabela.Data>='2008-01-01'"
Como também, é opcional o uso do nome da tabela antes do atributo quando o select se refere a uma única tabela, apenas. Exemplo:
"SELECT sum(Valor) as Total, max(if(Tipo='Tipo1', 'OK', '')) as OK, concat('<a href=pagina.asp>', `Código`, '</a>') as LINK FROM Tabela WHERE Data>='2008-01-01'"

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...