首页 > 解决方案 > 获取只有 2 种类型号码的号码

问题描述

MySQL数据库:

+-----------+
| Number    |
+-----------+
| 121255    |
+-----------+
| 22552525  |
+-----------+
| 122221221 |
+-----------+
| 555554    |
+-----------+
| 55445533  |
+-----------+

如何获取具有任意两个数字的数字?结果将是:

22552525 和 122221221 和 555554

标签: mysql

解决方案


我假设该列只能包含数字。
应用两次replace()以删除第一个字符,然后删除剩余字符串的第一个字符。
如果剩下的是一个空字符串,那么这个数字只包含 2 个不同的数字。

select * from tablename
where 
  length(replace(number, left(number, 1), '')) > 0
  and              
  length(replace(
    replace(number, left(number, 1), ''),
    left(replace(number, left(number, 1), ''), 1),
    ''
  )) = 0 

请参阅演示
结果:

| number    |
| --------- |
| 22552525  |
| 122221221 |
| 555554    |

推荐阅读