Це питання обходить те, що мені цікаво, але відповіді точно не стосуються цього.
Здавалося б, що загалом '=' швидше, ніж 'подобається' при використанні символів підстановки. Здається, це загальноприйнята мудрість. Однак, припустимо, у мене є стовпець, що містить обмежену кількість різних фіксованих, жорстко закодованих ідентифікаторів varchar, і я хочу виділити всі рядки, що відповідають одному з них:
select * from table where value like 'abc%'
і
select * from table where value = 'abcdefghijklmn'
"Подобається" потрібно лише протестувати перші три символи, щоб знайти відповідність, тоді як "=" має порівняти весь рядок. У цьому випадку мені здається, що "подобається" матиме перевагу за інших рівних умов.
Це задумано як загальне, академічне питання, і тому не має значення, яка БД, але воно виникло за допомогою SQL Server 2005.
value
- індексується чи ні . Якщо це так, то=
це простий пошук без необхідності сканування таблиці, який перевершить штани будь-якогоLIKE
твердження, яке ви на нього кинете.