高分有关问题一枚
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了高分有关问题一枚,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1441字,纯文字阅读大概需要3分钟。
内容图文
高分问题一枚数据库表中一个来电字段caller
caller有普通的手机号,也有带0的手机号,还有010-1234567这样的座机号码等等
请问如何去掉那些前面带0的手机号?
求高效实现
------解决方案--------------------
手机号和座机号有如下区别
长度
号码内是否存在"-"
区别出手机号 过滤首位 为0的手机号码
是这样吧?正则咯...
------解决方案--------------------
select ... where left(caller,1)!='0';
------解决方案--------------------
座机号加区号是11位把。手机号还有前导0的话就大于11位了。根据这个规则来替换。
------解决方案--------------------
- SQL code
SELECT * FROM `tbl` WHERE `calller` REGEXP '^01[3458]+';
------解决方案--------------------
手机号码前段没几个,可以根据这个来判断
- PHP code
$tel = <<<tel 013428504829 013578504829 057112345678 07551234567 02112345678 0101234567 tel; $tel = explode("\n", $tel); $tel_arr = array('13', '15', '18'); foreach ($tel as $key => $val) { if($val[0] == '0' && in_array("$val[1]$val[2]", $tel_arr)) $tel[$key][0] = ''; } print_r($tel);
------解决方案--------------------
手机号都是 1 打头
只要排除掉 010 北京区号就可以了
$caller = preg_replace('/^0(1[^0])/', '$1', $caller);
------解决方案--------------------
------解决方案--------------------
直接 mysql 操作
- SQL code
update tbl_name set caller=substr(caller,2) where caller regexp '^01[^0]'
内容总结
以上是互联网集市为您收集整理的高分有关问题一枚全部内容,希望文章能够帮你解决高分有关问题一枚所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】