我试图计算ID相同的行
|curs_code|cursistnr|Mark|Payed|
C# 20 6 50
PHP 25 8 100
C# 8 7 100
输出需要
C#,2次
我已经尝试了
$sql = "SELECT count(curs_code) as 'count_of_curs' FROM cursus where curs_code='$id'";
$query = $magazijn->query($sql);
return $query->fetchAll());
但是给了我这个输出:
C#
array (size=1)
0 =>
array (size=2)
'count_of_curs' => string '1' (length=1)
0 => string '1' (length=1)
PHP
array (size=1)
0 =>
array (size=2)
'count_of_curs' => string '1' (length=1)
0 => string '1' (length=1)
你怎么想这个?
答案 0 :(得分:3)
SELECT curs_code,count(*)as'count_of_curs'FROM cursus其中curs_code ='$ id'group by curs_code
如果您想要整个列表,请删除它。
答案 1 :(得分:2)
看起来你问的问题是“当我期望值为2时,为什么表达式COUNT(curs_code)
返回值为1?”
我认为这意味着两个出现的 C#
对您来说实际上是相同的不同价值观。这可能是由于其中一个值中存在“隐藏”的空白字符。
要返回包含字符串 curs_code
的所有C#
值,并“查看”实际存储的内容,请运行如下查询:
SELECT curs_code
, HEX(curs_code)
, CHAR_LENGTH(curs_code)
FROM cursus
WHERE curs_code LIKE '%C#%'
作为示范:
SELECT cc
, HEX(cc)
, CHAR_LENGTH(cc)
FROM ( SELECT 'C#' AS cc
UNION ALL SELECT 'C#\t'
UNION ALL SELECT 'C#\0'
) c
WHERE cc LIKE '%C#%'
cc HEX(cc) CHAR_LENGTH(cc)
--- ------- ---------------
C# 4323 2
C# 432309 3
C# 432300 3
如果您只想找到curs_code的“重复”值:
SELECT c.curs_code
, COUNT(1) AS count_of_curs_code
FROM cursus
GROUP BY c.curs_code
HAVING COUNT(1) > 1
ORDER BY c.curs_code