[英]Is it possible to use wildcard in the SELECT line of a sql statement?
[英]Use SQL Select query as wildcard
当前,我有以下查询:
UPDATE table1 SET P='1'
WHERE Recipient IN
(SELECT phone FROM phones WHERE number IN
(SELECT Number FROM users WHERE Username='test'))
因此,我用一个值更新了一个表列,其中在具有其他条件的列表中找到了收件人列。 现在,收件人是一个电话号码,如果前面有国家/地区代码,则从输入的数据中可以是10位或更大。 我如何更改上面的查询,以便可以查看收件人是否在结果列表中,但喜欢这些结果,以便使用通配符?
先感谢您
使用LIKE
子句,您可以尝试在%
运算符的帮助下匹配电话号码。 因此+1 (813) 890-4530
应该与%(813) 890-4530
匹配。 由于您尚未在recipient
和phone
表中都发布数据示例,因此我假设可能存在的唯一区别是国家/地区代码。 与IN
子句相反,我还建议在可能的情况下使用INNER JOIN
。
UPDATE table1 SET P='1'
FROM phones as p inner join users as u on p.number = u.Number
cross join table1 WHERE Username='test' and (Recipient LIKE '%' + phone OR phone LIKE '%' + Recipient)
有很多选择:
1)应用功能来清理电话号码,使它们看起来都一样。 例如:
UPDATE table1 SET P ='1'WHERE dbo.CleanPhone(Recipient)IN(从电话中选择电话,在IN中输入电话(从用户中选择SELECT,用户名=“ test”))
2)使用INNER JOIN代替IN进行更新,并在JOIN条件下使用LIKE。 像这样:
UPDATE t
FROM Table1 t
INNER JOIN Phones p ON Recipient LIKE ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.