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

4
我有一个包含电话号码模式的表格,其中x可以匹配任何数字。
现在,我可能会输入511132228,它将与第3行匹配,并应返回其类型。因此,这有点像SQL通配符,但是方向相反,我对如何实现这一点感到困惑。
3个回答

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

谢谢,我选择了另一个答案,因为他的声望更低 :) - Alexandru Pupsa

3
试试这个吧:
select * from my_table
where '511132228' like replace(phone_number, 'x', '_')

我怎么从来不知道SqlFiddle.com??谢谢! - PulseLab

0

尝试下面的查询:

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','_');

如果存在匹配的模式,上述查询将返回数据;如果没有匹配,则不会返回任何行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接