尝试在多列mysql php中计算值?
看看我的下表,我正在试着数一数表中的A。A只会出现在一行中,但有时会出现在第一列中,有时会出现在另一列中,所以我使用OR,但它回显的数字大于3,我只有3 A,为什么?我怎么能只数到3 A尝试在多列mysql php中计算值?,php,mysql,Php,Mysql,看看我的下表,我正在试着数一数表中的A。A只会出现在一行中,但有时会出现在第一列中,有时会出现在另一列中,所以我使用OR,但它回显的数字大于3,我只有3 A,为什么?我怎么能只数到3 A "SELECT COUNT(*) FROM $table WHERE first='A' OR second='A' OR third='A' AND number <= 7" id first second third number 1 A C B 3 2
"SELECT COUNT(*) FROM $table WHERE first='A' OR second='A' OR third='A' AND number <= 7"
id first second third number
1 A C B 3
2 C d F 5
3 A c b 6
4 B A c 7
试试这段代码,我相信你一定会得到正确的计数你要做正确的事情只需要做两件事: 将条件合并到括号中 为MYSQL关键字添加背景标记第二个是MYSQL关键字 修改的查询: 如果发生的错误多于一行,请尝试此操作:
select sum(if(first = 'A',1,0)+if(second = 'A',1,0)+if(third = 'A',1,0)) as count
from $table where number <= 7;
SQL Fiddle:听起来好像你想要第一个class='A'或第二个class='A'或第三个class='A'和数字的位置,或者第一个、第二个、第三个中的'A'如何?@shmosel我认为括号中的参数必须是一个值,而不是列名。如果我错了,请纠正我。@Engineer先生,你确实错了。A是否可能在一行中出现两次或两次以上?
SELECT
(select count(*) from tablename where first LIKE '%A' and number<=7)
+
(select count(*) from tablename where second LIKE '%A' and number<=7)
+
(select count(*) from tablename where third LIKE '%A' and number<=7);
"SELECT COUNT(*) FROM $table
WHERE (`first` = 'A' OR `second` = 'A' OR `third` = 'A')
AND `number` <= 7"
select sum(if(first = 'A',1,0)+if(second = 'A',1,0)+if(third = 'A',1,0)) as count
from $table where number <= 7;