2014-02-17 3 views
2

Таблица имеют значения:SQL - Почему значения не выбраны?

имя

УСЛУГИ ВЕТЕРИНАРНОЙ ПОМОЩИ КОНСУЛЬТАЦИЯ СТОМАТОЛОГА 
КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА БЕСПЛАТНАЯ 
УСЛУГИ СТОМАТОЛОГИЧЕСКИЕ ХИРУРГ-СТОМАТОЛОГ 
КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА-ХИРУРГА 
КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА 
КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА-ХИРУРГА 
КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА 
КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА ДЕТСКОГО БЕСПЛАТНАЯ ВСЕ ВИДЫ 

Если я сделать запрос,

SELECT * FROM TABLE 
WHERE 
name LIKE '%[$-()/ ]стоматолог[аеёиоуыэюяъь$-()/]' 
OR name LIKE '%-СТОМАТОЛОГ%' 

Я получаю результат:

УСЛУГИ ВЕТЕРИНАРНОЙ ПОМОЩИ КОНСУЛЬТАЦИЯ СТОМАТОЛОГА 
    КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА БЕСПЛАТНАЯ 
    УСЛУГИ СТОМАТОЛОГИЧЕСКИЕ ХИРУРГ-СТОМАТОЛОГ 
    КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА-ХИРУРГА 
    КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА 
    КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА-ХИРУРГА 
    КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА 
    КОНСУЛЬТАЦИЯ (ПРИЕМ) ВРАЧА-СТОМАТОЛОГА ДЕТСКОГО БЕСПЛАТНАЯ ВСЕ ВИДЫ 

Но если я сделать запрос:

SELECT * FROM TABLE 
WHERE 
name LIKE '%[$-()/ ]стоматолог[аеёиоуыэюяъь$-()/]' 

я получаю результат: УСЛУГИ ВЕТЕРИНАРНОЙ ПОМОЩИ КОНСУЛЬТАЦИЯ СТОМАТОЛОГА

Как я вижу %[$-()/ ]стоматолог[аеёиоуыэюяъь$-()/] должен включать %-СТОМАТОЛОГ%, но это не сработало.

Скажите, пожалуйста, почему во втором запросе я получаю только одно значение в результате?

Действительно использовать только %[$-()/ ]стоматолог[аеёиоуыэюяъь$-()/] или фильтр %[$-()/ ]стоматолог[аеёиоуыэюяъь$-()/] не работает для фильтра %-СТОМАТОЛОГ%?

P.S .: Я не понимаю, почему в первом запросе мы получаем 8 строк в результате, а во втором запросе получаем только одну строку в результате.

+1

Можете ли вы, пожалуйста, изменить результат на английских символов или усовершенствовать его разумным образом? Потому что у меня болит голова, пытаясь читать по-гречески. :) –

+4

@FabianBigler это русский –

+1

@AndreyChernukha See. Я даже не понимаю правильный язык. :) –

ответ

0

Ваше положение LIKE должно быть:

LIKE N'%[-$()/ ]стоматолог[аеёиоуыэюяъь$-()/]' 

с - на первой позиции или в противном случае он рассматривает его как определяющий диапазон между $ и (. Кроме того, добавьте N, чтобы он искал символы Unicode.

+0

+1 для ** с '-' в первой позиции или иначе он рассматривает его как определяющий диапазон между' $ 'и' ('** скажите мне, пожалуйста, где я могу написать об этом правила? –

+0

http://technet.microsoft.com/en-us/library/ms179859.aspx – Szymon

+0

спасибо, я не знаю, это –

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