Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

like通配符开始处如何理解?

小陈  发表于:2013-12-02 09:56:56  
复制

看到杜威昨天发表的有关like 文章,其说到: 


使用通配符注意事项

由于通配符搜索一般比其他搜索要耗费更长的处理时间,所有使用时需要注意:

  • 不要过度使用通配符。如果其他操作符能达到相同的目的应该使用其他操作符。
  • 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

请问:1、如何理解搜索模式的开始处?

          2、如何理解仔细注意通配符的位置?

能举例子说明吗?

 

Top
杜威 发表于:2013-12-02 12:27:40

你可以参考这篇文章:SQL中代替Like语句的写法:http://www.accessoft.com/article-show.asp?id=8705

通配符的用法及注意事项:http://www.accessoft.com/blog/article-show.asp?userid=9152&Id=8956

用通配符进行过滤


1. 通配符(wildcard)用来匹配值的一部分的特殊字符。
2. 搜索模式(Search Pattern):由字面值、通配符或者两者组合构成的搜索条件。
3. 为在搜索句子中使用通配符,必须使用LIKE操作符,以指示DBMS,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。
4. 通配符搜索只能用于文本字段(串),非文本数据类型字段不能使用通配符搜索。
5. 百分号通配符(%)可匹配任何字符出现任意次数。(在MS Access中符号为*)  WHERE prod_name LIKE 'Fish%';
6. 下划线通配符(_)只匹配一个字符。(MS Access中符号为?)
7. 方括号通配符([])用来指定一个字符集,必须匹配指定位置(即通配符位置)的一个字符。仅少数DBMS支持:MS Access、MS SQL和Sybase Adaptive Server。此通配符可以用前缀字符^(脱字号)来否定。(MS Access用!)
8. 使用通配符技巧:
   ①不要过分使用通配符。能不用尽量不用。
   ②除非必要。否则通配符勿用于搜索模式开始处。(会导致性能下降)
   ③注意正确放置通配符位置。




小陈 发表于:2013-12-02 15:15:37
 杜威高手的文章看过了,很详细,谢谢!不好意思,对“通配符勿用于搜索模式开始处”这句还是不理解,能举个例子说明下吗?

123木头人 发表于:2013-12-02 20:46:29

查询目标字段右侧为1的值,不管左侧有多少位也不管是什么值:Like "*1"

查询目标字段左侧为1的值,不管右侧有多少位也不管是什么值Like "1*"

查询目标字段中含有1的值,不管左右侧有多少位也不管是什么值Like "*1*"

查询目标字段右侧为1的值,左侧只有1位,不管是什么值Like "?1"



小陈 发表于:2013-12-03 15:05:52
感谢123的指教!

总记录:4篇  页次:1/1 9 1 :