Necesito realizar una SELECCIONAR consultas que son insensibles a mayúsculas y minúsculas. Para fines de demostración, se crea una tabla como la que:¿Cómo lidiar con caracteres acentuados en iOS SQLite?
create table table
(
column text collate nocase
);
insert into table values ('A');
insert into table values ('a');
insert into table values ('Á');
insert into table values ('á');
create index table_cloumn_Index
on table (column collate nocase);
Entonces, consigo esos resultados al ejecutar las siguientes consultas:
SELECT * FROM table WHERE column LIKE 'a';
> A
> a
SELECT * FROM table WHERE column LIKE 'á';
> á
SELECT * FROM table WHERE column LIKE 'Á';
> Á
¿Cómo puedo arreglar eso por lo que los resultados de cualquiera de los siguientes las consultas serán así:
> A
> a
> Á
> á
El sqlite se está ejecutando en iOS, por cierto.
Gracias de antemano,
Sí, yo estaba usando este enfoque también, pero ahora Necesito tratar con una base de datos que no puedo cambiar su estructura. Pero si puedes, y tu DB no es demasiado grande, es una manera fácil de hacerlo. –
@LeandroAlves Sé que ya pasó de largo este problema, pero (a) incluyo otra variación para las cadenas que no se acentúan; y (b) le mostrará cómo hacer cadenas de caracteres no acentuadas en SQLite sobre la marcha. – Rob
@Rob El código para la Opción 2 se ejecuta y maneja los datos correctamente, pero lleva la CPU al 99% y la Memoria> 1000 MB. La aplicación falla con 'EXC_BAD_ACCESS (código = 2, dirección = 0x0)' inmediatamente después de completar las operaciones. ¿Hay algo que se pueda hacer para controlar el uso de la memoria con este código? –