如何以通用格式在MySQL中存储电话号码

如何以通用格式在MySQL中存储电话号码,mysql,Mysql,假设我有这张桌子: CREATE TABLE `Phone_Numbers` ( `ID` INTEGER NOT NULL AUTO_INCREMENT, `Phone_Number` VARCHAR(20) NOT NULL, `Date_Modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `Date_Created` DATETIME NOT NULL

假设我有这张桌子:

CREATE TABLE `Phone_Numbers` (
  `ID` INTEGER NOT NULL AUTO_INCREMENT, 
  `Phone_Number` VARCHAR(20) NOT NULL, 
  `Date_Modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
  `Date_Created` DATETIME NOT NULL DEFAULT NOW(),
  UNIQUE `Main_UK` (`Phone_Number`), 
  PRIMARY KEY (`ID`)
) ENGINE=innodb DEFAULT CHARSET=utf8;
我想在其中写入(作为create语句的一部分或alter语句的一部分),当用户输入以下任一项时:

  • (111)111-1111
  • +1111-111-1111
  • 1111111111
  • 1(111)111-1111
它应该普遍地将这些值中的任何一个存储为“1111111”。这应该可以在MySQL的后端实现


另外,在MS Access上,我可以在表单上放置一个输入掩码,这样我就可以选择在不使用输入掩码字符的情况下保存数据。我可以在MySQL上强制一个输入掩码吗?它可以从任何应用程序调用,这样用户就可以像输入“(111)111-1111”一样输入它,并将其存储为“1111111”?

掩码只是显示号码的一种表示方式:理想情况下,您不应该以某种格式存储电话号码:只需数字本身就足够了。然后,您可以在数字旁边存储掩码/格式化程序:也许地区/国家足以让您决定如何在屏幕上显示数字。@Terry Yes。我如何在MySQL中实现这一点?我必须在CREATE语句中写些什么来实现这一点?掩码只是一种显示号码的表示方式:理想情况下,您不应该以某种格式存储电话号码:只需数字本身就足够了。然后,您可以在数字旁边存储掩码/格式化程序:也许地区/国家足以让您决定如何在屏幕上显示数字。@Terry Yes。我如何在MySQL中实现这一点?我必须在CREATE语句中写些什么来实现这一点?