英文:
SQL Select CASE-WHEN - How to remove formatting from telephone numbers
问题
SELECT语句创建一个表,其中包含多个字段。我使用CASE/WHEN来更改一些值,但我不知道如何格式化结果。
SELECT DISTINCT field1, field2, field3, field4,
CASE meta_value
WHEN 'male' THEN 'M'
WHEN 'female' THEN 'F'
-- 其他情况的处理
END
-- 其他SELECT语句部分
返回的电话号码可能带有其他字符,我希望去除,例如:
(404) 202-2039
404-202-2039
1-404-202-2039
我想要返回只有数字,没有空格、连字符、括号等其他字符的电话号码:
4042022039
有什么好的方法可以实现这个吗?
英文:
I have a SQL Select statement that creates a table from a number of fields. I'm using the CASE/WHEN to change some of the values but I'm stuck on how to format the results.
SELECT DISTINCT field1, field2, field3, field4,
CASE meta_value WHEN 'male' then 'M' WHEN 'female' THEN 'F' etc.
The telephone numbers that are returned may have other characters that I would like to remove, i.e.:
(404) 202-2039
404-202-2039
1-404-202-2039
I would like to return only the numbers with no spaces or other characters, hyphens, parentheses, etc:
4042022039
Any ideas on how to best accomplish this?
答案1
得分: 1
如果您正在运行MySQL 8.0,则可以使用regexp_replace()
函数:
regexp_replace(phone_number, '[^0-9]', '') clean_phone_number
英文:
If you are running MySQL 8.0, you can use regexp_replace()
:
regexp_replace(phone_number, '[^0-9]', '') clean_phone_number
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论