【发布时间】:2016-01-27 07:05:21
【问题描述】:
我在 SQL Server 2014 Enterprise 中有以下代码:
SELECT c.Id
FROM dbo.Content c
WHERE c.Id = 8753495 AND c.Content LIKE '%Paypal%'
此代码用于了解内容是否与 Paypal 一词匹配并返回 0 个结果,对于该 id,我知道它在内容中包含“Paypal”一词。
我尝试过使用不同的内容词,其中一些词有效,而另一些则无效。
数据库和Content 表都使用SQL_Latin1_General_CP1_CI_AS 排序规则。
谁能帮帮我?
编辑: 这个查询的目的是做别的事情,不仅返回id,而且我发现like运算符的问题,所以我给你失败的部分
也尝试了上/下,但仍然不起作用
这里是创建脚本。
CREATE TABLE [dbo].[Content](
[Id] [int] NOT NULL,
[Content] [nvarchar](max) NULL,
CONSTRAINT [PK_Content_1] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
感谢您的回复。
编辑 2: Like operation returns no rows on nvarchar column filter if the column data start with numeric 没有回答这个问题。 模式的末尾有一个空格。
这里的问题是一个恶意客户端放置了看起来相似的字符,这样可以避免验证并可能发送垃圾邮件
例如,Unicode 1056 十进制(420 hexa)是类似于拉丁文 P(Ascii 80)的希腊字符
【问题讨论】:
-
你试过
lower(c.Content) LIKE '%paypal%'吗? -
你能举一个你期望返回的行的例子吗?
-
请同时提供表创建语句,以便我们查看列类型
标签: sql sql-server-2014 sql-like