Этот вопрос охватывает то, что мне интересно, но ответы на него не совсем точны.
Может показаться, что в целом «=» быстрее, чем «нравится» при использовании подстановочных знаков. Похоже, это общепринятое мнение. Однако давайте предположим, что у меня есть столбец, содержащий ограниченное количество различных фиксированных, жестко запрограммированных идентификаторов varchar, и я хочу выбрать все строки, соответствующие одному из них:
select * from table where value like 'abc%'
и
select * from table where value = 'abcdefghijklmn'
'Like' должно проверять только первые три символа, чтобы найти совпадение, тогда как '=' должен сравнивать всю строку. В этом случае мне кажется, что подобное имело бы преимущество при прочих равных условиях.
Это общий академический вопрос, поэтому он не имеет значения, какая БД возникла при использовании SQL Server 2005.


value- индексируется или нет . Если это так, то=это простой поиск без необходимости сканирования таблицы, и он избавит вас от любогоLIKEутверждения, которое вы ему бросите.