我想匹配WHERE
子句中字符串的开头。虽然我认识到数据库性能通常取决于底层数据结构,但是否有这样做的最佳实践?有没有一种选择总是优于其他选择?
我想避免LIKE
,因为我认为它的效率会低于LEFT
or CHARINDEX
。据我所知,我的选择如下。欢迎其他建议:
DECLARE @MyField as varchar(10)
SET @MyField = 'HELLOWORLD'
SELECT 1 WHERE @MyField LIKE 'HELLO%'
SELECT 2 WHERE LEFT(@MyField, 5) = 'HELLO'
SELECT 3 WHERE CHARINDEX('HELLO', @MyField) = 1