Ir para conteúdo
Fórum Script Brasil
  • 0

cláusula LIKE do MySQL no Python


xwillianss

Pergunta

O comando LIKE do MySQL não funciona no Ptyhon. Como faço para que minha consulta me retorna apenas os contatos de acordo com as iniciais dos nomes que eu escolher? Ex:

cursor.execute('''select * from contatos where nome like %s + "%" ''') % varNome

...mas dar um erro:

raise errorclass, errorvalue

_mysql_exceptions.OperationalError: (1054, "Unknown column 'Willia' in 'where clause'")

código:

#contatodao.py
from conexao import Conexao
from contato import Contato

class ContatoDAO:
    def __init__(self):
        self.conexao = Conexao().get_conexao()
        self.cursor = self.conexao.cursor()
    
    def lista_por_nome(self, n):
        strsql = "select * from contatos WHERE nome = %s" %n
        self.cursor.execute(strsql)
        resultado = self.cursor.fetchall()
        self.cursor.close()
        self.conexao.commit()
        self.conexao.close()
        return resultado
    
    def lista_por_codigo(self, codigo):
        strsql = '''select * from contatos WHERE id = %d''' %codigo
        self.cursor.execute(strsql)
        resultado = self.cursor.fetchall()
        self.cursor.close()
        self.conexao.commit()
        self.conexao.close()
        return resultado
      
    def lista(self, data=None):
        strsql = '''select * from contatos'''
        self.cursor.execute(strsql)
        resultado = self.cursor.fetchall()
        self.cursor.close()
        self.conexao.commit()
        self.conexao.close()
        return resultado
        
    def salvar(self, contato=Contato):
        strsql = '''insert into contatos(nome,endereco,fone,email,datanasc)
                values(%s,%s,%s,%s)'''
        lista_contatos = [contato.get_nome(), contato.get_endereco(),
                          contato.get_fone(), contato.get_email(), contato.get_datanasc()]
        self.cursor.executemany(strsql, lista_contatos)
        self.conexao.commit()
        self.conexao.close()
        
    def remover(self, contato=Contato):
        strsql = '''delete from contatos where id = %s'''
        self.cursor.execute(strsql, contato.get_id())
        self.conexao.commit()
        self.conexao.close()
        
if __name__ == '__main__':
    cdao = ContatoDAO()
    for r in cdao.lista_por_nome("Willian"):
        print '%s | %s | %s | %s | %s' % (r[0], r[1], r[2], r[3], r[4])

laguém pode me ajudar? :unsure:

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...