Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

105
Visualizações
Escape solo algunos caracteres en la cláusula where

Quiero buscar registros que tengan algún campo de cadena que comience con un prefijo dado y termine en cualquier carácter. Básicamente:

 Model.where('field LIKE ?', "#{prefix}_").count

El problema es que el propio prefijo puede contener caracteres especiales (como % o _ ).

¿Hay alguna manera de escapar del prefijo, pero no del final _ sin hacer rodar mi propio desinfectante con un montón de #gsub s?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

No hay mejor solución que reemplazar todo _ con \_ y todo % con \% para escapar de su significado especial.

over 4 years ago · Santiago Trujillo Relatório

0

Model.where("field LIKE ?||'_'", escapeDataFunction("#{prefix}")).count

La idea es escapar de lo que debe escaparse y codificar la otra parte en la condición "dónde". También tenga en cuenta que cuando se utilizan variables de sustitución (? o :1), no es necesario escapar los datos en general, pero las expresiones "me gusta" son una excepción, y en ese caso, debe escapar los caracteres especiales con significado en el como operador.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda