【发布时间】:2015-10-29 10:16:48
【问题描述】:
我正在使用 Sql Server 2014 Express 并且有一个 varchar(max) 列。在某些情况下,我需要使用特殊字符来为该字段赋予特殊含义。
例如,我有这个值:“123.456.234”,但我想使用类似的值:“678.*789.123”。在第二种情况下,* 表示值 789 不是标准值(我的应用程序逻辑中的标准值),而其他两个值 678 和 123 是标准值。
但我不知道当我想在查询中使用此列进行搜索时,是否使用“*”会遇到问题。我可以使用任何字符,我只想分隔字符串中特定值的含义。
非常感谢。
【问题讨论】:
-
你应该把意思放在另一列。服务器会容易得多,并且可以使用索引。
-
检查 SQL Server wildcard .
-
@JulienVavasseur 您无法索引 varchar(max)
-
@Frisbee 我的意思是新列上的索引,其含义不应是 varchar(max) 而是 int 或易于查询的小东西。这看起来像是一个设计问题,在搜索通配符 varchar(=> 表扫描)时会导致性能问题
标签: sql-server varcharmax