我有一个我需要从中提取的数据库。该数据库包含以下表格:
商店
YELP商业列表,包括姓名,电话号码等
还有locationid
位置
包含名称(伦敦,纽约),locationID,parentid
ParentID允许表格在层次结构中。
EG。纽约州和纽约市可能有一个位置 在这种情况下,NYC的parentid将成为纽约州的对象。
分类
类别具有id和名称
例如。汽车经销商,船舶经销商)
ShopCategories
每个企业都有多个BusinessCategories
包含businessid和categoriesid。
然后,我们会根据位置和业务类别提供大量搜索结果页。
例如。
纽约市所有商业类别
纽约市船舶经销商
纽约市汽车经销商
纽约州所有商业类别
纽约州船舶经销商
纽约州汽车经销商
注意:搜索结果将显示该位置和任何子位置的商家 示例:纽约州将展示在纽约市上市的业务。
我需要编写一个python脚本,让我知道2个搜索结果页面是否列出了相同的业务。
示例:如果纽约州的所有船舶经销商都存在于纽约市内,那么这两页都是:
纽约州船舶经销商
纽约市船舶经销商
列出相同的业务。
我需要一些关于如何有效解决的一般建议
mysql> DESC categories;
+--------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+-------------------+-----------------------------+
| CategoryID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| CategoryName | char(50) | NO | | | |
| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+--------------+------------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.07 sec)
mysql> DESC shopcategories;
+----------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------------+------+-----+-------------------+-----------------------------+
| ShopCategoryID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| ShopID | int(10) unsigned | YES | MUL | NULL | |
| CategoryID | int(10) unsigned | YES | MUL | NULL | |
| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+----------------+------------------+------+-----+-------------------+-----------------------------+
4 rows in set (0.00 sec)
mysql> DESC locations;
+-----------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+-------------------+-----------------------------+
| LocationID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| LocationName | char(50) | YES | | NULL | |
| LocationUrlName | varchar(100) | YES | | NULL | |
| ParentID | int(10) unsigned | YES | | NULL | |
| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| postcode | char(5) | YES | | NULL | |
+-----------------+------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.00 sec)
mysql>
mysql> desc shops;
+---------------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+------------------+------+-----+-------------------+-----------------------------+
| ShopID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| ContactAddressID | int(10) unsigned | NO | MUL | 0 | |
| OwnerID | int(10) unsigned | NO | MUL | 0 | |
| ShopName | int(10) unsigned | Null | MUL | 109 | |
| LocationID | varchar(50) | NO | | | |
| ShopUrlName | varchar(300) | YES | | NULL | | | |
答案 0 :(得分:0)
我建议使用oursql
模块。它非常简单而且非常强大。
以下是教程:https://pythonhosted.org/oursql/index.html
conn = oursql.connect(host='127.0.0.1', user='habnabit', passwd='foobar',
db='example', port=3307)
curs = conn.cursor(oursql.DictCursor)
curs.execute(
'SELECT * FROM `some_table` WHERE `col1` = ? AND `col2` = ?',
(42, -3))
curs.fetchall()
所有这些示例都来自教程。如果您想了解有关这些类及其方法的更多信息,请参阅以下API参考: https://pythonhosted.org/oursql/api.html#
为了您的比较......我只是比较结果的ID。