繁体   English   中英

计算数据库中特定字段的字符数

[英]count number of characters of a particular field in a databse

下面显示了我的表用户和表中的一些条目。 在用户表中, 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

提前致谢

如果您只需要列出用户并根据他们的长度对其进行排序,则只需运行

 SELECT * FROM tableName ORDER BY length(phoneid);

但是如果您需要获取长度大于16的示例,请执行以下操作:

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

您应该使用.. strlen()函数的PHP。

这将返回character count of a string..character count of a string..

喜欢

echo strlen($phoneid);

MySQL中的length函数可以解决这一问题。

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

我想这就是您要寻找的:

SELECT * FROM tableName GROUP BY length(phoneid);

我想将phoneid显示为两类(一类在16以上,另一类在16以下)。 如何将其分为两类?

您可以将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_Category_1  Phone_Category_2
43f46cc43f4c797c                       43f46cc43f4c797c
03C03372-B549-4FA2-9A6B-E28F250E8DWE                     03C03372-B549-4FA2-9A6B-E28F250E8DWE
4f7e35b38470abd0                       4f7e35b38470abd0
74C03372-B549-4FA2-9A6B-E28F250E8EBA                     74C03372-B549-4FA2-9A6B-E28F250E8EBA

您可以从结果集中省略phoneid ,并且可以取决于phone_category_1phone_category_2

暂无
暂无

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

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