2011-12-14 3 views
0

У меня есть что-то колонки, как:как соответствовать любой части строки?

name   value 
John kennedy 1999 
Bill gates 8388383 
Obama  11110 

Мне нужен запрос, который соответствовал 1999, если я пытаюсь получить john или kennedy

Я пробовал:

cmd.CommandText = "select value from contacts where name like @name"; 
    cmd.Parameters.AddWithValue("@name", "%" + name); 

если @name является john это возвращает 0 колоний , если «@name» - kennedy, это возвращает 1999

ответ

3

положить % по обе стороны от имени:

cmd.Parameters.AddWithValue("@name", "%" + name + "%"); 
3

Вы можете попробовать:

cmd.Parameters.AddWithValue("@name", "%" + name + "%"); 
2

Вы должны подстановочные знаки на обоих концах вашего значения:

cmd.Parameters.AddWithValue("@name", "%" + name + "%"); 
0

Было бы похоже, что это может иметь какое-то отношение к случаю значения параметра, попробуйте установить значение столбца и значение параметра как верхним, так и нижним case и в вашем SQL и посмотрите, помогает ли это

+0

по умолчанию для сравнения без учета регистра. Настоящий баггер здесь состоит в том, что в предложении where указано, что имя должно заканчиваться значением, представленным переменной имени (в противном случае в обоих концах должен быть% –

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