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

表A,有一行数据如下字段idqid1qid2qid3qid4内容1AABB要求显示结果A2条B2条请问如何写这样的mysql语句。是同一行数据,不是一列,谢谢!... 表A,有一行数据如下

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

要求显示结果

A 2条
B 2条
请问如何写这样的mysql语句。
是同一行数据,不是一列,谢谢!
展开
 我来答
阿曜解说
2012-11-15 · TA获得超过198个赞
知道答主
回答量:171
采纳率:0%
帮助的人:61.4万
展开全部
写好了 发给你自己测试下, 笔记本断网了,专门去同事电脑上发给你的,记得采纳哦

-- 创建测试表
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里的,
追答
一样的   你的sql语句   就是一条:  call P_test();    这个跟select 语句一样的
直接可以在程序中执行
记得采纳哦朋友
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abc8603
2012-11-17 · TA获得超过258个赞
知道小有建树答主
回答量:102
采纳率:100%
帮助的人:74.1万
展开全部
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
OldCat_先生
2012-11-15 · TA获得超过274个赞
知道小有建树答主
回答量:144
采纳率:33%
帮助的人:47.7万
展开全部
好久没弄过mysql了。
sqlserver 中是没办法这样显示的。mysql 貌似也不行。
一般是直接用代码 创建表 然后循环 已查询的记录 加入新表中的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式