Php 统计数据库中特定字段的字符数

Php 统计数据库中特定字段的字符数,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,下面显示了我的表用户和表中的一些条目。在用户表中,phoneid以如下所示的特定方式存储。有些值高于16,有些值低于16 我想将phoneid显示为两个类别(一个高于16,另一个低于16)。 我如何将其分为两类 phoneid 43f46cc43f4c797c 03C03372-B549-4FA2-9A6B-E28F250E8DWE 4f7e35b38470abd0 74C03372-B549-4FA2-9A6B-E28F250E8EBA bb

下面显示了我的表用户和表中的一些条目。在用户表
中,phoneid
以如下所示的特定方式存储。有些值高于16,有些值低于16

我想将
phoneid
显示为两个类别(一个高于16,另一个低于16)。 我如何将其分为两类

    phoneid 

    43f46cc43f4c797c
    03C03372-B549-4FA2-9A6B-E28F250E8DWE
    4f7e35b38470abd0
    74C03372-B549-4FA2-9A6B-E28F250E8EBA
    bbc4fe41d79aa730
    61152d549ba924fa
    c3ac44f7c0cd2a62
    03C03372-B549-4FA2-9A6B-E28F250E8DWE
    d07e063ef6d4598e
    2f3467d189e6a8ac
    fc35ee8d18f03b9e
    189cc387b2b3ce3f
    84B03372-B549-4BN2-9A6B-E28F250E8OPJ

提前感谢

您应该使用<代码>strlen()php的函数

它将返回字符串的
字符计数。

echo strlen($phoneid)

MySQL中的可以解决这个问题

SELECT * FROM users WHERE LENGTH(phoneid) > 16;

我想这就是你想要的:

SELECT * FROM tableName GROUP BY length(phoneid);
我想把phoneid分为两类(一类在16以上,另一类在16以下)。我如何将其分为两类

    phoneid 

    43f46cc43f4c797c
    03C03372-B549-4FA2-9A6B-E28F250E8DWE
    4f7e35b38470abd0
    74C03372-B549-4FA2-9A6B-E28F250E8EBA
    bbc4fe41d79aa730
    61152d549ba924fa
    c3ac44f7c0cd2a62
    03C03372-B549-4FA2-9A6B-E28F250E8DWE
    d07e063ef6d4598e
    2f3467d189e6a8ac
    fc35ee8d18f03b9e
    189cc387b2b3ce3f
    84B03372-B549-4BN2-9A6B-E28F250E8OPJ
您可以将temp字段添加到结果集中,如下所示,根据手机ID的字符长度将其显示为定义的类别

Select *, 
       case when char_length( phoneid ) <= 16 then 
                 phoneid else '' end as 'Phone_Category_1',
       case when char_length( phoneid ) >  16 then 
                 phoneid else '' end as 'Phone_Category_2'
From   users 

您可以从结果集中省略
phoneid
,如果您只需要列出用户并根据其长度对其进行排序,则可以依赖于
phone\u category\u 1
phone\u category\u 2
你可以直接跑

 SELECT * FROM tableName ORDER BY length(phoneid);
但如果您需要获取长度大于16的示例,只需执行以下操作:

 SELECT * FROM tableName WHERE length(phoneid) > 16;

非常感谢您的宝贵意见。这非常有帮助。因为这段代码对我来说非常新。