Python 如何搜索mysql中有多少副本并进行比较

Python 如何搜索mysql中有多少副本并进行比较,python,python-3.x,mysql-python,Python,Python 3.x,Mysql Python,所以我想根据mysql中变量a和变量b的重复数量来比较它们。这是我的代码: query = """ SELECT `do` FROM `foo` """ cursor.execute(query) result=cursor.fetchall() a = '0001' b = '1100' y = collections.Counter(result) print(y) 这是我的输出: Counter({('0001',): 2, ('1100',): 1}, ('0000',): 4})

所以我想根据mysql中变量
a
和变量
b
的重复数量来比较它们。这是我的代码:

query = """ SELECT `do` FROM `foo` """
cursor.execute(query)
result=cursor.fetchall()

a = '0001'
b = '1100'
y = collections.Counter(result)
print(y)
这是我的输出:

Counter({('0001',): 2, ('1100',): 1}, ('0000',): 4})
输出正在计算整行的重复项。我希望它只计算mysql中的
a
b
的数量

我真的不知道这之后该怎么办。如果
a>b
print
a
,我希望代码运行

如果
a
打印
b


我想要的输出:

a = 2 # number of duplicates
b = 1
a # print a because a > b
任何答案都将不胜感激。

a=(“0001”)#设置为元组,以便您可以直接将它们用作键
b=(“1100”)
y=计数器({('0001',):2,('1100',):1,('0000',):4})
a_count=y.get(a)#`(“0001”),出现的次数
b_count=y.get(b)#`(“1100”,)`出现的次数
如果a_计数>b_计数:
印刷品(a)
如果a_计数
您可以使用更复杂的查询来提取所需的数据,并减少使用Python所需的工作量

对于
WHERE
子句中指定的
do
值,此查询提取
do
的值,以及包含该值的行数

stmt = """SELECT do, COUNT(do)
          FROM foo
          WHERE do IN ('0001', '1100')
          GROUP BY do;"""
cursor.execute(stmt)
result=cursor.fetchall()   # [('0001', 2), ('1100', 1)]

largest = max(result, key=lambda x: x[1])
print(largest[0])
或者你可以做数据库中的所有工作。此查询与上一个查询一样对值及其行数进行分组,但按行数降序排列,并返回第一行

stmt = """SELECT do, COUNT(do) AS do_count 
          FROM foo 
          WHERE do IN ('0001', '1100') 
          GROUP BY do 
          ORDER BY do_count DESC 
          LIMIT 1;"""
cur.execute(stmt)
result = cursor.fetchone()    # ('0001', 2)
print(result[0])    
注意:这两种方法都假设不会有两个具有相同行计数的
do
值,问题中的代码也是如此。如果代码要处理这种情况,则必须在第一个示例中的键函数中为
max
或第二个示例中的
ORDER BY
子句指定额外的排序标准