Saltar al contenido

¿Cómo hacer que mi base de datos postgresql use una intercalación que no distinga entre mayúsculas y minúsculas?

Luego de mirar en varios repositorios y sitios al final hemos dado con la resolución que te compartiremos aquí.

Solución:

Mucho ha cambiado desde esta pregunta. Se agregó soporte nativo para intercalación que no distingue entre mayúsculas y minúsculas en PostgreSQL v12. Esto básicamente desaprueba el citext extensión, como se menciona en las otras respuestas.

En PostgreSQL v12, uno puede hacer:

    CREATE COLLATION case_insensitive (
      provider = icu,
      locale = 'und-u-ks-level2',
      deterministic = false
    );

    CREATE TABLE names(
      first_name text,
      last_name text
    );

    insert into names values
      ('Anton','Egger'),
      ('Berta','egger'),
      ('Conrad','Egger');

    select * from names
      order by
        last_name collate case_insensitive,
        first_name collate case_insensitive;

Consulte https://www.postgresql.org/docs/current/collation.html para obtener más información.

No hay intercalaciones que no distingan entre mayúsculas y minúsculas, pero existe la extensión citext:

http://www.postgresql.org/docs/current/static/citext.html

Para mi propósito, la palabra clave ILIKE hizo el trabajo.

De los documentos de postgres:

los key La palabra 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.

Acuérdate de que tienes el privilegio agregar una reseña si acertaste tu traba justo a tiempo.

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


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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