我想匹配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
Run Code Online (Sandbox Code Playgroud)