sql - 为什么我的 SQL 查询返回的记录与 where 子句不匹配?
问题描述
此查询返回一个记录的结果,其中[E-mail]
和[E-mail 2]
都等于'e'
。绝对是一个懒惰的推销员的结果。知道为什么会这样吗?
我的查询如下所示,所以我应该只获取电子邮件等于'emailfromsomeone@hotmail.com'
正确的记录?
declare @email as varchar
set @email = 'emailfromsomeone@hotmail.com'
select
C.[No_],
C.[First Name] firstname,
C.[Surname] lastname,
C.[E-Mail] as email,
C.[E-Mail 2] as email_2,
C.[GDPR Opt-in] as GDPR_opt_in,
C.[Salesperson Code] as sales_person
from
[Contact] as C
where
lower(C.[E-Mail]) = lower(@email)
or lower(C.[E-Mail 2]) = lower(@email)
解决方案
您已声明@email
为 a VARCHAR
,表示单个 VARCHAR
。当您设置@email
变量时,它会被截断为第一个字符。
尝试更改VARCHAR
为VARCHAR(100)
.
推荐阅读
- django - 在 django 中的 runserver 之前强制运行测试
- matlab - 在matlab中为我的信号应用傅里叶带通
- php - 从数组中删除多个值
- javascript - CreateElement 然后写innerHTML
- javascript - Prevent JS from moving to another page
- docker - 从 Azure Kubernetes 服务中提取 ACR 映像时获取“未经授权:需要身份验证”
- angular - 角度响应式自定义图表
- session - Cakephp different sessions for different users
- excel - 如何使用 VBA Excel 2016 for Mac 运行 exe 文件
- postgresql - Clean restore from PostgreSQL dump