You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中使用LIKE通配符与变量实现邮箱后缀查询

解决SQL Server中变量拼接LIKE查询无结果的问题

你的问题核心是变量声明时未指定数据类型,SQL Server会默认将变量识别为char(1)类型,导致@emailAddress只存储了第一个字符@,自然查不到匹配的结果。

正确的查询写法

声明变量时必须指定合适的数据类型(比如VARCHAR(255),可根据实际邮箱长度调整),再拼接LIKE条件:

DECLARE @emailAddress VARCHAR(255) = '@statusquo.org';
SELECT * FROM users WHERE email_address LIKE '%' + @emailAddress;

也可以用CONCAT函数简化拼接逻辑,效果一致:

DECLARE @emailAddress VARCHAR(255) = '@statusquo.org';
SELECT * FROM users WHERE email_address LIKE CONCAT('%', @emailAddress);

额外注意事项

如果你的邮箱后缀包含LIKE通配符(比如%、_、[]),需要用ESCAPE关键字转义,避免通配符被解析为匹配规则。例如后缀是@status_quo.org时:

DECLARE @emailAddress VARCHAR(255) = '@status_quo.org';
SELECT * FROM users WHERE email_address LIKE '%' + REPLACE(@emailAddress, '_', '\_') ESCAPE '\';

内容的提问来源于stack exchange,提问作者Samuel Hyde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 02:18:15