[英]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.