繁体   English   中英

搜索已包含通配符的SQL表?

[英]Search an SQL table that already contains wildcards?

我有一个表格,其中包含电话号码的图案,其中x可以匹配任何数字。

+----+--------------+----------------------+
| ID | phone_number | phone_number_type_id |
+----+--------------+----------------------+
|  1 | 1234x000x    |                    1 |
|  2 | 87654311100x |                    4 |
|  3 | x111x222x    |                    6 |
+----+--------------+----------------------+

现在,我可能有511132228,它将与第3行匹配,它应该返回它的类型。 所以,它有点像SQL wilcards,但另一种方式,我对如何实现这一点感到困惑。

select * 
from yourtable
where '511132228' like (replace(phone_number, 'x','_'))

放手一搏:

select * from my_table
where '511132228' like replace(phone_number, 'x', '_')

请尝试以下查询:

SELECT ID,phone_number,phone_number_type_id
FROM TableName
WHERE '511132228' LIKE REPLACE(phone_number,'x','_');

查询测试数据:

With TableName as
(

SELECT 3 ID, 'x111x222x' phone_number, 6 phone_number_type_id from dual
)

SELECT 'true' value_available
FROM TableName
WHERE '511132228' LIKE REPLACE(phone_number,'x','_');

如果模式匹配可用,则上述查询将返回数据,如果没有匹配,则不返回任何行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM