我有一个包含4列的电话数据库table
:
countrycode
areacode
phonenumber
extension
我正在遵循“规范”格式,因为我需要考虑一些国际号码。
而且命运也会如此,输入的一些数字会有扩展名。
我有一个查询,我用它来自动格式化所有内容,但扩展名为
SELECT CONCAT('+',`countrycode`,'(',`areacode`,')', `phonenumber`) AS `fullnumber` ...
结果:+1(123)4567890或:+61(08)1234 1234 这很好用,它可以与我导出的一些拨号软件完美配合。
但是,我现在需要在此查询中包含扩展名。但是,我需要自动格式化它:
+1(123)4567890 x123
这很容易,但由于大多数数字都没有扩展名,我需要创建一个包含char(x)的条件。这是我的困境,因为我仍然在查询中学习条件语句。
有人在CONCAT中使用奇怪的if / else语句吗?
答案 0 :(得分:2)
MySQL的IF
语句的作用如下:
IF(condition, iftrue, iffalse)
:如果给定条件为真,则返回iftrue
参数。否则,返回iffalse
参数。
因此,您的查询可能如下所示:
SELECT CONCAT('+',`countrycode`,'(',`areacode`,')', `phonenumber`, IF(`extension` IS NULL, "", CONCAT(" x", `extension`))) AS `fullnumber ...
MySQL IF
函数是几个控制流函数之一。有关这些功能的更多信息,请参阅MySQL docs。