Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

109
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda