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