使用SQL选择查询作为通配符

时间:2017-12-28 13:51:58

标签: sql

目前,我有以下查询:

UPDATE table1 SET P='1'
WHERE Recipient IN
(SELECT phone FROM phones WHERE number IN
(SELECT Number FROM users WHERE Username='test'))

因此,我更新了一个表列,其中包含一个值,其中在具有其他条件的列表中找到了收件人列。现在,收件人是一个电话号码,如果收件人前面有国家代码,则收到的数据可能是10位数或更大。如何,我可以更改上面的查询,以便我可以看到收件人是否在结果列表中但是喜欢这些结果,以便使用通配符?

提前谢谢

2 个答案:

答案 0 :(得分:1)

使用NSLog子句,您可以尝试在LIKE运算符的帮助下匹配电话号码。因此%应与+1 (813) 890-4530匹配。由于您尚未在%(813) 890-4530recipient表中发布数据示例,因此我假设可能存在的唯一区别是国家/地区代码。与phone条款相反,我在可能的情况下也建议IN

INNER JOIN

答案 1 :(得分:0)

有很多选择: 1)应用一个功能来清理电话号码,使它们看起来都一样。例如: UPDATE table1 SET P ='1' 在哪里dbo.CleanPhone(收件人)IN (选择电话来自电话号码IN (SELECT Number FROM users WHERE Username ='test')) 2)使用INNER JOIN而不是IN进行UPDATE并在JOIN条件下使用LIKE。像这样的东西: 更新t 从表1 t INNER JOIN Phones p ON收件人喜欢......