
Python sqllite full row search ?? o al menos un dict.sort[key1,key2]
Publicado por perro (13 intervenciones) el 18/02/2022 00:36:10
hola buenos dias
primera pregunta sqllite
dada una tabla_terceros de una base de datos de sqllite que contiene los nombres y los apellidos de los clientes
keys = ["id", "apellido1", "apellido2", "nombre1", "nombre2","type", "telf", "dir" ];
nesecito poder hacer busquedas por apellido y nombre en cualquier columna de forma de que si no hay una coincidencia exacta me devuelva las rows que mas se acerquen a lo que le estoy pidiendo
o se que si search = "daniel martines" cosa que no esta en la tabla al menos me devuelva las rows que contengan las palabras martines y daniel en cualquier columna
####
debe poderse hacer con sqllite pero no di palos con bolas con el concat
segunda pregunta sort()
lsta = [
{ "index": 1, "match": "17", "row_str": "abc" },
{ "index": 2, "match": "3", "row_str": "bccd" },
{ "index": 3, "match": "-1", "row_str": "xyz" },
{ "index": 4, "match": "-1", "row_str": "alfaalberto" },
{ "index": 5, "match": "0", "row_str": "julian na" },
{ "index": 6, "match": "3", "row_str": "adxu" },
{ "index": 7, "match": "3", "row_str": "zuuu" },
{ "index": 8, "match": "3", "row_str": "c378" },
]
##lista.sort()
lista.sort(key=operator.itemgetter('match',row_str)) ## esto no funciona
print(lista)
en este caso nesecito que me ordena los componentes de la lista basado en en campo "match"
y en el caso de que los "match" sean iguales decida el orden alfabeticamente basado en el valor de "row_str"
de ser posible hacer que tambien ignore los dics donde match sea menor que zero
en javascrip yo lo hago con
lista.sort(function (a, b) {
if (a["match"] == b["match"]) {
return ('' + a["row_str"]).localeCompare(b["row_str"]);
} else {
return a["match"] - b["match"];
}
});
me pueden ayudar con alguno de estos dos preguntas ??
bueno muchas gracias
nesecito hacer algo ya mas complicado que ya tengo hecho en javscript pero no encuentro como configurar aqui el sort para que haga lo que quiero
nesecito hacer una full row search sobre una tabla de una base de datos
primera pregunta sqllite
dada una tabla_terceros de una base de datos de sqllite que contiene los nombres y los apellidos de los clientes
keys = ["id", "apellido1", "apellido2", "nombre1", "nombre2","type", "telf", "dir" ];
nesecito poder hacer busquedas por apellido y nombre en cualquier columna de forma de que si no hay una coincidencia exacta me devuelva las rows que mas se acerquen a lo que le estoy pidiendo
o se que si search = "daniel martines" cosa que no esta en la tabla al menos me devuelva las rows que contengan las palabras martines y daniel en cualquier columna
####
debe poderse hacer con sqllite pero no di palos con bolas con el concat
segunda pregunta sort()
lsta = [
{ "index": 1, "match": "17", "row_str": "abc" },
{ "index": 2, "match": "3", "row_str": "bccd" },
{ "index": 3, "match": "-1", "row_str": "xyz" },
{ "index": 4, "match": "-1", "row_str": "alfaalberto" },
{ "index": 5, "match": "0", "row_str": "julian na" },
{ "index": 6, "match": "3", "row_str": "adxu" },
{ "index": 7, "match": "3", "row_str": "zuuu" },
{ "index": 8, "match": "3", "row_str": "c378" },
]
##lista.sort()
lista.sort(key=operator.itemgetter('match',row_str)) ## esto no funciona
print(lista)
en este caso nesecito que me ordena los componentes de la lista basado en en campo "match"
y en el caso de que los "match" sean iguales decida el orden alfabeticamente basado en el valor de "row_str"
de ser posible hacer que tambien ignore los dics donde match sea menor que zero
en javascrip yo lo hago con
lista.sort(function (a, b) {
if (a["match"] == b["match"]) {
return ('' + a["row_str"]).localeCompare(b["row_str"]);
} else {
return a["match"] - b["match"];
}
});
me pueden ayudar con alguno de estos dos preguntas ??
bueno muchas gracias
nesecito hacer algo ya mas complicado que ya tengo hecho en javscript pero no encuentro como configurar aqui el sort para que haga lo que quiero
nesecito hacer una full row search sobre una tabla de una base de datos
Valora esta pregunta


0