0
# -*- coding: utf-8 -*-

import re
import sys
import MySQLdb
from getpass import getpass

reload(sys)
sys.setdefaultencoding('utf-8')

conn = MySQLdb.connect(host, user, passwd, db, charset = 'utf-8')
cur = conn.cursor()
cur.execute("show tables")
tablenames = [i[0] for i in cur.fetchall()]

cur.execute("SELECT * FROM %s" % tablenames)
rows = cur.fetchall()
for row in rows:
    x = re.compile(r"\bhello\b")
    p = x.search(str(row))
    if p:
    cur.execute("DELETE FROM %s WHERE " % t) # how to delete this row

conn.close()

使用上面的代码,我想用正则表达式搜索表格行,并搜索关键字“hello”。

如果匹配,我想删除在获取所有行的行中循环的行。

当正则表达式找到行时,如何编写删除语句?

非常感谢!

4

2 回答 2

2

您可以在 SQL 中使用 LIKE:

DELETE FROM `table` WHERE `content` LIKE "%value%"

执行 sql 后重要的是提交:

a = cur.execute(sql)
con.commit()
于 2013-08-14T09:07:19.107 回答
0

如果我怀疑您想要删除满足某些条件的行,那么您根本不需要选择。
DELETE FROM tableName WHERE columnName [=, !=, <, >, LIKE] columnValue
如果您需要正则表达式匹配,请阅读以下内容: http: //dev.mysql.com/doc/refman/5.1/en/regexp.html

于 2012-09-20T16:53:24.547 回答