mysql复杂的if/else场景
我有一个电话数据库mysql复杂的if/else场景,mysql,case,Mysql,Case,我有一个电话数据库表,有4列: countrycode areacode 电话号码 分机 我遵循“规范”格式,因为我有一些国际数字要考虑。 正如命运所安排的,一些输入的数字有扩展名 我有一个查询,用于自动格式化所有内容,但扩展名除外: SELECT CONCAT('+',`countrycode`,'(',`areacode`,')', `phonenumber`) AS `fullnumber` ... 结果:+1(123)4567890或:+61(08)1234 1234 这非常好用
表
,有4列:
countrycode
areacode
电话号码
分机
SELECT CONCAT('+',`countrycode`,'(',`areacode`,')', `phonenumber`) AS `fullnumber` ...
结果:+1(123)4567890或:+61(08)1234 1234
这非常好用,而且它与我导出到的一些拨号软件完美配合
但是,我现在需要在这个查询中包含扩展名。但是,我需要自动格式化它,如下所示:
+1(123)4567890 x123
这相当容易,但是由于大多数数字没有扩展名,我需要创建一个包含char(x)的条件。这就是我的困境,因为我还在学习查询中的条件语句
有人在CONCAT中使用奇怪的if/else语句吗?MySQL的
if
语句的工作原理如下:
IF(condition,iftrue,iffalse)
:如果给定的条件为真,则返回iftrue
参数。否则,返回iffalse
参数
因此,您的查询可能如下所示:
SELECT CONCAT('+',`countrycode`,'(',`areacode`,')', `phonenumber`, IF(`extension` IS NULL, "", CONCAT(" x", `extension`))) AS `fullnumber ...
MySQL
IF
函数是几个控制流函数之一。有关这些函数的更多信息,请参阅。Nice,我最初尝试了IF(),我可以看到我的格式设置被关闭了。谢谢你,扎克!