简体   繁体   English

PHP:按字符数分组计算数量

[英]PHP: count amount by group by number of characters

I have a table ,, as follows: 我有一张桌子,如下:

在此处输入图片说明

I want to generate count (count) of each number of characters from mac_addr .. example from the table: 我想从表中的mac_addr ..示例生成每个字符数的计数(计数):

  • 15 characters = 5 15个字符= 5
  • 19 characters = 2 19个字符= 2
  • 24 characters = 3 24个字符= 3

but i want to use one query .. I use now to count each with a different query (not in a single query). 但我想使用一个查询..我现在使用不同的查询(不是在单个查询中)对每个计数。 example: 例:

$query1 = mysqli_query($conn,"SELECT COUNT(*) AS 'jumlah' FROM orders WHERE ((LENGTH(mac_addr)=15))");
$cek1 = mysqli_fetch_assoc($query1);
$kar1 = $cek1['jumlah'];

$query2 = mysqli_query($conn,"SELECT COUNT(*) AS 'jumlah' FROM orders WHERE ((LENGTH(mac_addr)>15) AND (LENGTH(mac_addr)<24))");
$cek2 = mysqli_fetch_assoc($query2);
$kar2 = $cek2['jumlah'];

$query3 = mysqli_query($conn,"SELECT COUNT(*) AS 'jumlah' FROM orders WHERE ((LENGTH(mac_addr)>19))");
$cek3 = mysqli_fetch_assoc($query3);
$kar3 = $cek3['jumlah'];

echo '15 karakter ='.$kar1;
echo '<br>';
echo '19 karakter ='.$kar2;
echo '<br>';
echo '24 karakter ='.$kar3;
echo '<br>';

well how if made in a single query so as not to eat too much coding / row? 那么如何在单个查询中进行编码,以免吃太多编码/行呢?

您可以使用group by

SELECT LENGTH(mac_addr) as characters , count(*) AS jumlah FROM orders group by LENGTH(mac_addr)

To be honest, I think you should do this if you want to replace your current method... 老实说,我想如果要替换当前方法,应该这样做。

SELECT LENGTH(mac_addr), count(mac_addr) FROM orders GROUP BY LENGTH(mac_addr) WHERE LENGTH(mac_addr) > 14

Then take the result and analyze the 15 and up lengths to find exact counts for each grouping. 然后取结果并分析15个及以上长度,以找到每个分组的准确计数。

This could also be done with 这也可以用

SELECT mac_addr FROM orders WHERE LENGTH(mac_addr) > 14

And then analyze it - if first query has any issues. 然后进行分析-如果第一个查询有任何问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM