从电话号码条目中选择区号

时间:2013-03-18 18:46:51

标签: mysql database select

我想从电话号码填充的列条目列表中仅选择区号。这就是我所拥有的:

SELECT LEFT(phone, 3) AS areacode, COUNT(phone) AS count 
FROM registration 
GROUP BY areacode;

问题是,条目不一致。所以一些电话号码开头为+ 123-456-7899,其他电话号码开头为(123)-456-7899,其他电话号码开头没有符号。

所以我的问题是:有没有办法可以确保SELECT LEFT从第一个整数开始?

谢谢!

3 个答案:

答案 0 :(得分:2)

有些东西是SQL不适合的。这是一。我会选择一个字符串中的电话号码,并用您选择的编程语言进行一些模式匹配,以找到区号。

-OR -

更改您的表格,使区号不同。

答案 1 :(得分:1)

两个选项(两者都不是SQL):

  1. 选择所有电话号码并使用您选择的编程语言以编程方式删除不必要的字符。
  2. 清理输入以去除所有不必要的字符之前以将其插入数据库
  3. SQL不是最好的方法,而是SQL +编程

答案 2 :(得分:0)

实际上有一种方法可以在SQL中为此目的而专门设计。

SELECT SUBSTRING(office_phone_number,1,3)FROM contact;

当然,这取决于数字在表格中的存储方式。如果存在括号,则您的起始位置将关闭。

以下是更多信息: MySQL substring function