Saltar al contenido

Consulta Rails MySQL ILIKE

Te traemos la solución a este atascamiento, o por lo menos eso deseamos. Si tienes dudas puedes escribirlo en el apartado de comentarios y sin tardanza

Solución:

Creo que debería ser:

 scope :by_name, lambda  

En PostgreSQL, la palabra clave ILIKE se puede usar en lugar de LIKE para hacer que la coincidencia no distinga entre mayúsculas y minúsculas de acuerdo con la configuración regional activa. Esto no está en el estándar SQL, pero es una extensión de PostgreSQL.

En MySQL no tienes ILIKE. Consulte los documentos de MySQL en string funciones de comparación.


Prima – también puedes usar Arel. Echar un vistazo:

scope :by_name, lambda  
  where(Agency.arel_table[:name].matches("%#agency_name%"))

Por qué sí, porque no existe tal cosa como ILIKE en MySQL. Solamente LIKE. Es posible que hayas visto ILIKE como una versión que no distingue entre mayúsculas y minúsculas de LIKE en PostgreSQL, pero su RDBMS actual es diferente.

Tu mejor apuesta es usar LOWER en ambos lados para lograr un efecto mayormente equivalente:

.where('LOWER(name) LIKE LOWER(?)', "%#agency_name%")

El crédito para @mu es demasiado corto para su respuesta.

Acuérdate de que tienes concesión de parafrasear si te fue preciso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *