2015-10-27 3 views
-3

У меня есть следующий код в 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 сортировка.

Может ли кто-нибудь мне помочь?

EDIT: Цель этого запроса сделать что-то еще, а не только возвращать идентификатор, но я нашел проблему на как оператор, поэтому я даю вам ту часть, которая неисправный

также попытались с верхним/ниже, но все еще не работает

Вот сценарий создания.

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 

Спасибо за ответы.

EDIT 2: Этот вопрос не является ответом Like operation returns no rows on nvarchar column filter if the column data start with numeric. В конце картины было место.

Проблемы здесь был злонамеренным клиентом, который положил символы, которые выглядят похоже, таким образом избежать проверок и может послать спам

Например, Unicode 1056 десятичных (420 гекса) является греческим характером похож на латинской Р (Ascii 80)

enter image description here

+0

вы пробовали 'ниже (c.Content) LIKE«% PayPal% ' '? –

+4

Можете ли вы привести пример строки, которую вы ожидаете вернуть? –

+0

Пожалуйста, также дайте инструкцию «Создать таблицу», чтобы мы могли видеть типы столбцов – AeroX

ответ

0

Ну, я нашел ошибку.

Содержимое было загружено клиентом (спамером), и если посмотреть на ascii каждого символа, я узнал, что клиент поместил контент в символы юникода, похожие.

Так «Paypal» не было «Paypal», как и ожидалось, здесь является результатом слова Paypal с по сравнению с ожидаемым результатом: Unicode result

Смежные вопросы