如何用MySQL查询同一张表两列值匹配的行数
嘿,这里有个简单直接的MySQL查询语句,能帮你统计given_answer和correct_answer两列值相等的行数:
SELECT COUNT(*) AS matching_rows FROM your_table_name WHERE given_answer = correct_answer;
快速拆解一下这个语句:
COUNT(*):专门用来统计符合后续条件的行数,这里就是两列值相等的记录总数AS matching_rows:给结果列起个直观的别名,方便你识别,改成其他名字也完全没问题WHERE given_answer = correct_answer:核心筛选条件,只保留两列值完全匹配的行
用你提供的测试数据跑这个查询,结果正好是3,完全符合预期。
如果你还想先查看具体哪些行匹配,再统计总数,MySQL 8.0及以上版本可以用CTE(公共表表达式)来实现:
WITH matched_records AS ( SELECT * FROM your_table_name WHERE given_answer = correct_answer ) SELECT COUNT(*) AS total_matches FROM matched_records;
不过如果只是单纯要统计匹配行数,第一个基础查询就足够高效啦。
内容的提问来源于stack exchange,提问作者A_nik
相关产品推荐
相关产品推荐

