Filtrar filas BD en python

Antonio Gutiérrez antonio en xilus.es
Mar Dic 19 09:39:02 CET 2006


Buenas Jesús, tu problema es de SQL mas que de python.
para hacer lo que pides debes de usar la sentencia SQL LIKE:
SELECT * FROM tabla WHERE Nombre LIKE '%Ma%'

el simbolo '%' representa cualquier caracter o caracteres, así que
buscaría lo que tu escribas en cualquier parte del campo.
Espero que te sirva de ayuda.
Un saludo

El lun, 18-12-2006 a las 22:32 +0100, Jesus Rodriguez escribió:

> Buenas amigos,
> 
> Estoy haciendo un programa que usa bases de datos y claro, hay una cosa que
> no sé hacer, y realmente con mi actual conocimiento de SQL no podría decir
> si tengo que hacer esto con SQL o código python.
> 
> Me explico:
> 
> Quiero hacer algo como el filtrado de canciones que hace rhythmbox,
> quodlibet, banshee, etc.
> 
> O sea, sale en un treeview la lista de canciones y colocando un caracter en
> el entry, ya empieza a mostrar solo las entradas que contengan ese caracter
> (o conjunto de caracteres).
> 
> Pongo un ejemplo:
> 
> Si tengo una base de datos con 3 columnas, por ejemplo: Nombre, Apellido,
> Provincia. y tengo 3 entradas:
> 
> Francisco, Garcia, Madrid
> Maria, perez, Valencia
> Juan, Garcia, Palencia
> 
> Entonces si no hay nada en el entry, pues saldrian todas las entradas, pero
> si coloco por ejemplo: "alencia" pues mostraria los dos ultimos ya que esa
> cadena existe dentro de la fila.
> 
> Si pongo "ma" pues saldrían los 2 primeros, ya que "ma" está en Madrid y
> está en Maria.
> 
> Segun creo, para buscar cosas en una BD se puede usar WHERE:
> 
> select * from tabla where Nombre='Ma%';
> 
> Pero claro, la cosa está en que quiero que la cadena que pongo para filtrar,
> se busque en cualquier columna de la fila y esa cadena puede estar en
> cualquier sitio de una palabra, así que creo que no podría usar Where
> columna='xxx' ya que no quiero buscar en una columna solo, quiero buscar en
> todas, y tampoco podría usar lo de 'Ma%' ya que esto dice que busque al
> principio de una cadena, y quiero que sea en el principio, mitad o final de
> la cadena.
> 
> No sé si esto se peude hacer con SQL o esto se hace parseando entradas con
> python.
> 
> Y ya luego, supongo que tendría un evento que se lanzaria cada vez que se
> modificara el entry y haga el filtrado, aunque tener que abrir la base de
> datos, buscar, y cerrar la base de datos cada vez que modifique el entry,
> quizás sea algo lento.
> 
> Gracias.


-- 
Antonio Gutiérrez <antonio en xilus.es>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es