¿es posible realizar una búsqueda con Doctrine sin distinción entre mayúsculas y minúsculas?Doctrine LIKE caso insensible
Respuesta
Esto depende principalmente de su servidor de base de datos. A LIKE con MySQL no distingue entre mayúsculas y minúsculas y PostgreSQL distingue entre mayúsculas y minúsculas. Pero usted puede ayudarse a sí mismo con algo como esto:
$pattern = strtolower('HEllO WorlD');
$q = Doctrine_Query::create()
->select('u.username')
->from('User u')
->where("LOWER(u.username) LIKE ?", $pattern);
Otra cosa que puede hacer es:
$qb->andWhere($qb->expr()->like('lower(o.name)', ':name'));
$qb->setParameter('name', '%'. strtolower($search) . '%');
Saludos.
Además, puede intentar:
$queryBuilder->where('LOWER(b.title) LIKE LOWER(:query)')
->setParameter('query', '%' . $query . '%');
Importante: Después de convertir una cadena que contiene caracteres especiales a minúsculas con strtolower(), los caracteres especiales no aparecen correcta.
La mejor manera de hacerlo es tener una columna de nombre de usuario canonizado, en esa columna puede almacenar la versión en minúscula de la columna de nombre de usuario y cualquier otro proceso de canonización que desee hacer y buscar e indexar esa columna en lugar del nombre de usuario columna, luego solo haga
->where("u.canonic_username) LIKE ?", $pattern);
De esta forma puede usar índices y todo eso.
$q = Doctrine_Query::create()
$q->select('t')
->from('database_table t')
->where($q->expr()->like('t.search_field', ':search_text'))
->setParameter('search_text', '%'.strtolower($searchText).'%');
Esta respuesta ha sido marcada como de baja calidad. ¿Podría explicar su código y por qué soluciona el problema? – AJFarmar
- 1. Caso insensible búsqueda variedad
- 2. Caso insensible find_or_create_by_whatever
- 3. ORACLE 11g caso insensible por defecto
- 4. JPA: realizar caso de orden insensible por
- 5. Caso insensible switch de los casos
- 6. Caso insensible ordenamiento especie en NHibernate
- 7. Raíles: ActiveRecord db sort operación caso insensible
- 8. Caso insensible expresión regular Python sin re.compile
- 9. Caso insensible a la sustitución PowerShell
- 10. caso vim búsqueda insensible sensible reemplazar
- 11. Collation insensible a mayúsculas y minúsculas en Oracle con LIKE
- 12. Sintaxis SQL 'LIKE'
- 13. Consultando MongoDB (vía pymongo) en caso insensible eficientemente
- 14. ¿Hay un caso jQuery insensible: contiene el selector?
- 15. no caso de búsqueda sensible rieles PostgreSQL con LIKE
- 16. ¿Es posible realizar una búsqueda insensible a mayúsculas y minúsculas en una declaración LIKE en SQL?
- 17. PostgreSQL: comparación de cadena insensible a las mayúsculas
- 18. LIKE y comodín% en la Doctrina findBy *()
- 19. Cómo usar el HashSet <string>. Método Contieneins() en el modo de caso -insensible?
- 20. MVC 3 - Comparar atributo - Realizar la comparación de caso insensible en el lado del cliente
- 21. Caso cadena insensible comparar con LINQ a SQL y LINQ a objetos
- 22. Insensible a mayúsculas ¿REEMPLAZAR en MySQL?
- 23. Los modelos generados de Doctrine respetan el caso, pero Yaml generado no
- 24. MySQL regex query case insensible
- 25. Regex insensible a los acentos?
- 26. Caso de MySQL en la instrucción Select con el operador LIKE
- 27. NHibernate.Linq LIKE
- 28. Problemas Doctrine QueryBuilder y concat
- 29. Reemplazo insensible a mayúsculas
- 30. Insensible a mayúsculas/minúsculas (ilike) en Datamapper con Postgresql
¿Y qué hay de los índices en la columna de nombre de usuario? – Jekis