我有一张桌子,如下:
我想从mac_addr生成每个字符数的count(count).. 表中的例子:
但我想使用一个查询.. 我现在用它来计算每个查询的不同(不是在一个查询中)。 例如:
$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>';
如果在单个查询中如何制作以避免吃太多编码/行?
答案 0 :(得分:1)
您可以使用group by
SELECT LENGTH(mac_addr) as characters , count(*) AS jumlah FROM orders group by LENGTH(mac_addr)
答案 1 :(得分:0)
老实说,如果你想替换现有方法,我认为你应该这样做......
SELECT LENGTH(mac_addr), count(mac_addr) FROM orders GROUP BY LENGTH(mac_addr) WHERE LENGTH(mac_addr) > 14
然后获取结果并分析15和更长的长度以找到每个分组的确切计数。
这也可以用
完成SELECT mac_addr FROM orders WHERE LENGTH(mac_addr) > 14
然后分析它 - 如果第一个查询有任何问题。