中易网

mysql查询同一条数据中不同字段相同数值的总数语句

答案:3  悬赏:10  
解决时间 2021-02-02 14:01
表A,有一行数据如下

字段 id qid1 qid2 qid3 qid4
内容 1 A A B B

要求显示结果

A 2条
B 2条
请问如何写这样的mysql语句。
是同一行数据,不是一列,谢谢!
最佳答案
写好了 发给你自己测试下, 笔记本断网了,专门去同事电脑上发给你的,记得采纳哦

-- 创建测试表
drop TABLE IF EXISTS test;
create table test(
id TINYINT primary key,
qid1 CHAr(1),
qid2 CHAr(1),
qid3 CHAr(1),
qid4 CHAr(1)
);
-- 插入测试数据
INSERT into test VALUES (1,'A','A','B','B');
-- 创建存储过程
DROP PROCEDURE IF exists P_test;
DELIMITER &&
CREATE PROCEDURE P_test()
BEGIN
DECLARE q1,q2,q3,q4 char(1) DEFAULT '';
DECLARE aNum,bNum TINYINT DEFAULT 0;
SELECT qid1,qid2,qid3,qid4 into q1,q2,q3,q4 FROM test;

IF q1 = 'A' THEN
SET aNum = aNum+1;
ELSE
SET bNum = bNum+1;
END IF;
IF q2 = 'A' THEN
SET aNum = aNum+1;
ELSE
SET bNum = bNum+1;
END IF;
IF q3 = 'A' THEN
SET aNum = aNum+1;
ELSE
SET bNum = bNum+1;
END IF;
IF q4 = 'A' THEN
SET aNum = aNum+1;
ELSE
SET bNum = bNum+1;
END IF;
SELECT 'A',aNum
UNIOn
SELECT 'B',bNum;
END &&
DELIMITER ;

-- 调用 就出现你要的结果
CALL P_test();
全部回答
好久没弄过mysql了。 sqlserver 中是没办法这样显示的。mysql 貌似也不行。 一般是直接用代码 创建表 然后循环 已查询的记录 加入新表中的。
1)求qid1=qid2的记录数 select count(id) from a where qid1 = qid2; 2)求qid3=qid4的 记录数 select count(id) from a where qid3 = qid4; 3)求qid1=qid2 或者 qid3=qid4的记录数 select count(id) from a where qid1= qid2 or qid3=qid4;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
富源五金机电批发商行地址在哪,我要去那里办
富足天下在哪里啊,我有事要去这个地方
胫骨平台骨折术后3个月,做功能锻炼是膝盖疼
名人不坚持没成功的例子
显卡安装驱动就黑屏无法进入系统
南海福利中心怎么去啊,有知道地址的么
手机看电影至少要多少分辨率?
临时空间不足怎么回事
舌吻具体咋弄?求解
鹭岛国际社区三期2号门在什么地方啊,我要过
有没参加过香港购物团的?
从包头开车去西安多少公里,费用多少,沿途有什
OEM台式电脑,英特尔酷睿2 4400 @2.00GHz处理
漫果公社(南开二马路店)这个地址在什么地方,
系统铃声音怎么设置
推荐资讯
如意天骄婚礼工作室在什么地方啊,我要过去处
极世网吧地址在哪,我要去那里办事
咸嘉新村嘉兴苑我想知道这个在什么地方
艾肯mobileu声卡怎么与sam机架连接
星火灯饰城地址有知道的么?有点事想过去
古人对手下是怎么称呼的?
为什么我玩拳皇2002打N。E。S。T队时碰到的总
义康蜂胶复印打字怎么去啊,我要去那办事
王者荣耀赏金狂送真的假的
创惠裤业地址有知道的么?有点事想过去
长得像林依晨的是谁?内地女明星
麻烦帮找电影(末日侵袭),英语中字高清清,谢
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?