【发布时间】:2019-06-26 15:20:34
【问题描述】:
我正在尝试对 REGEXP_REPLACE 使用 distinct 并返回 0 行。
我在 MySQLP v8.0 中创建了一个测试表
CREATE TABLE phone(
id serial primary key,
phone_number char(25));
INSERT INTO phone (phone_number)
VALUES ('(423) 330-9999');
INSERT INTO phone (phone_number)
VALUES ('(423)3309999');
INSERT INTO phone (phone_number)
VALUES ('423-330-1111)');
INSERT INTO phone (phone_number)
VALUES ('1-423-330-6666');
INSERT INTO phone (phone_number)
VALUES ('1A423*330*1111');
INSERT INTO phone (phone_number)
VALUES ('5553301111');
-- 那么
select
REGEXP_REPLACE(phone_number, '[^0-9]', '',1, 0, 'm') as clean_phone
from phone
--- 工作正常 -> 清洁电话 4233309999 4233309999 4233301111 14233306666 14233301111 5553301111
---计数
select
count(REGEXP_REPLACE(phone_number, '[^0-9]', '',1, 0, 'm')) as
clean_phone
from phone
--- 工作正常 -> 清洁电话 6
-- 不同的 clean_phone
select
distinct(REGEXP_REPLACE(phone_number, '[^0-9]', '',1, 0, 'm')) as
clean_phone
from phone
--- 返回空 -> 干净的手机
我不明白为什么 distinct 不起作用?
【问题讨论】: