mysql-使用DISTINCT的REGEXP_REPLACE

mysql-使用DISTINCT的REGEXP_REPLACE,第1张

概述我正在尝试使用REGEXP_REPLACE与众不同,并返回0行.我已经在MySQLP v8.0中创建了一个测试表 CREATE TABLE phone( id serial primary key, phone_number char(25)); INSERT INTO phone (phone_number) VALUES (

我正在尝试使用REGEXP_REPLACE与众不同,并返回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,'m') as clean_phonefrom phone

—工作正常->
clean_phone
4233309999
4233309999
4233301111
14233306666
14233301111
5553301111

—计数

select    count(REGEXP_REPLACE(phone_number,'m')) as    clean_phonefrom phone

—工作正常->
clean_phone
6

-独特的clean_phone

select    distinct(REGEXP_REPLACE(phone_number,'m')) as    clean_phonefrom phone

—返回空->
clean_phone

我不明白为什么区分不起作用?

最佳答案distinct不是函数,因此您不需要distinct(),而仅需要distinct

select  distinct REGEXP_REPLACE(phone_number,'m') as    clean_phonefrom phone

.

    select distinct  clear_phone from(    select   REGEXP_REPLACE(phone_number,'m')  clear_phone   from phone ) t 

如果错误仍然存​​在,您可以尝试使用虚拟表的插入/选择

  insert into dummy_table(clear_phone)  select   REGEXP_REPLACE(phone_number,'m')    from phone;  select distinct clear_phone from dummy_table;
总结

以上是内存溢出为你收集整理的mysql-使用DISTINCT的REGEXP_REPLACE 全部内容,希望文章能够帮你解决mysql-使用DISTINCT的REGEXP_REPLACE 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1165985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存