我想从电话号码填充的列条目列表中仅选择区号。这就是我所拥有的:
SELECT LEFT(phone, 3) AS areacode, COUNT(phone) AS count
FROM registration
GROUP BY areacode;
问题是,条目不一致。所以一些电话号码开头为+ 123-456-7899,其他电话号码开头为(123)-456-7899,其他电话号码开头没有符号。
所以我的问题是:有没有办法可以确保SELECT LEFT从第一个整数开始?
谢谢!
答案 0 :(得分:2)
有些东西是SQL不适合的。这是一。我会选择一个字符串中的电话号码,并用您选择的编程语言进行一些模式匹配,以找到区号。
-OR -
更改您的表格,使区号不同。
答案 1 :(得分:1)
两个选项(两者都不是SQL):
SQL不是最好的方法,而是SQL +编程
答案 2 :(得分:0)
实际上有一种方法可以在SQL中为此目的而专门设计。
SELECT SUBSTRING(office_phone_number,1,3)FROM contact;
当然,这取决于数字在表格中的存储方式。如果存在括号,则您的起始位置将关闭。
以下是更多信息: MySQL substring function