下面显示了我的表格用户以及表格中的一些条目。在用户表中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
提前致谢
答案 0 :(得分:1)
如果您只需要列出用户并根据他们的长度订购它们 你可以简单地运行
SELECT * FROM tableName ORDER BY length(phoneid);
但如果您需要获得长度大于16的那些,请执行以下操作:
SELECT * FROM tableName WHERE length(phoneid) > 16;
答案 1 :(得分:0)
你应该使用.. strlen()
php的功能..
将返回character count of a string..
像
echo strlen($phoneid);
答案 2 :(得分:0)
MySQL中的length function可以解决这个问题。
SELECT * FROM users WHERE LENGTH(phoneid) > 16;
答案 3 :(得分:0)
我认为这就是你要找的东西:
SELECT * FROM tableName GROUP BY length(phoneid);
答案 4 :(得分:0)
我想将phoneid显示为两个类别(一个在16以上,另一个在16以下)。如何将其分为两类???
您可以在结果集中添加临时字段,如下所示,根据字符长度将电话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_1
和phone_category_2
。