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])
Pergunta
xwillianss
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:
laguém pode me ajudar? :unsure:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.