我有一张桌子。在那里我存储用户的详细信息,如名字,姓氏,电话号码。在存储电话号码时,它存储的数据不带扩展名,如+1(013)691-1535x。有时,用户也可能输入扩展名,它将像+1(013)691-1535x12345那样存储。这里我怀疑的是,如果分机为空,如何只检索电话号码。如果分机可用,我需要查看分机的电话号码。

最佳答案

您可以使用SUBSTRING_INDEX拆分电话号码:

SELECT phone_number,SUBSTRING_INDEX(phone_number, 'x', 1) as phone_num, SUBSTRING_INDEX(phone_number, 'x', -1) as phone_ext FROM tablename;

查询结果
+-----------------------+-----------------+-----------+
| phone_number          | phone_num       | phone_ext |
+-----------------------+-----------------+-----------+
| +1(013)691-1535x12345 | +1(013)691-1535 | 12345     |
+-----------------------+-----------------+-----------+

现在,你有完整的电话号码和分机,电话号码没有分机,只有分机。根据查询结果,可以在脚本中进行“检查”并使用字段值。

关于mysql - 从表中选择字符串的特定部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20837418/

10-08 22:25