由SQL的like说开去(1)

作者:leen 来源:ITPOW 日期:2005-10-3

要选取表tbl中字段fld以"t_"开头的记录,使用"select * from tbl where fld like 't_%'",然而结果却不如我们的意,它选出的是所有以"t"开头的记录,而不是以"t_"开头的记录。

原来"_"是通配符,表示零个或一个任何字符。虽然我们都知道"_"是个通配符,但在这里使用时往往会疏忽,尤其是关键词来自客户端输入时。这里正确的写法应该是"select * from tbl where fld lik 't[_]%'"。

"[]"表指定范围 (如[a-f]) 或集合 (如[abcdef]) 中的任何单个字符。
    "[^]"表不属于指定范围 (如[a-f]) 或集合 (如[abcdef]) 的任何单个字符。

那么我们不想将"["、"]"作为通配符时又如何写呢?
  搜索"["用 like '[[]'
  搜索"]"用 like ']'
  比如我们要选取表tbl中字段fld含有"[1]"的记录,使用"select * from tbl where fld like '%[[]1]%'"。

相关文章