打印本文 打印本文 关闭窗口 关闭窗口
SQL操作(初级、中级、高级)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数28752  更新时间:2007/11/14 11:12:15  文章录入:mintao  责任编辑:mintao
你也可以使用脱字符(^)来排除特定的字符。例如,要得到那些名字不以Y开头的站点,你可以使用如下的查询:

SELECT site_name FROM site_directory WHERE site_name LIKE [^Y]%

对给定的字符或字符范围均可以使用脱字符。

最后,通过使用下划线字符(_),你可以匹配任何单个字符。例如,下面这个查询返回每一个其名字的第二个字符为任何字母的站点:

SELECT site_name FROM site_directory WHERE site_name LIKE M_crosoft

这个例子既返回名为Microsoft的站点,也返回名为Macrosoft的站点。但是,名字为Moocrosoft的站点则不被返回。与通配符不同,下划线只代表单个字符。

注意:

如果你想匹配百分号或下划线字符本身,你需要把它们括在方括号中。如果你想匹配连字符(-),应把它指定为方括号中的第一个字符。如果你想匹配方括号,应把它们也括在方括号中。例如,下面的语句返回所有其描述中包含百分号的站点:

    SELECT site_name FROM site_directory WHERE site_desc LIKE %[%]%

匹配发音

Microsoft SQL 有两个允许你按照发音来匹配字符串的函数。函数SOUNDEX()给一个字符串分配一个音标码,函数DIFFERENCE()按照发音比较两个字符串。当你不知道一个名字的确切拼写,但多少知道一点它的发音时,使用这两个函数将有助于你取出该记录。

例如,如果你建立一个Internet目录,你也许想增加一个选项,允许访问者按照站点名的发音来搜索站点,而不是按名字的拼写。考虑如下的语句:

SELECT site_name FROM site_directory

                 WHERE DIFFERENCE(site_name , Microsoft>3

这个语句使用函数DEFFERENCE()来取得其名字的发音与Microsoft非常相似的站点。函数DIFFERENCE()返回一个04之间的数字。如果该函数返回4,表示发音非常相近;如果该函数返回0,说明这两个字符串的发音相差很大。

例如,上面的语句将返回站点名MicrosoftMacrosoft。这两个名字的发音与Microsoft都很相似。如果你把上一语句中的大于3改为大于2,那么名为ZicrosoftMegasoft的站点也将被返回。最后,如果你只需要差别等级大于1即可,则名为PicosoftMinisoft的站点也将被匹配。

要深入了解函数DIFFERENCE()是如何工作的,你可以用函数SOUNDEX()来返回函数DIFFERENCE()所使用的音标码。这里有一个例子:

SELECT site_name site name,SOUNDEX(site_name) sounds like

这个语句选取字段site_name的所有数据及其音标码。下面是这个查询的结果:

site name                     sounds like

……………………………………………………………….

Yahoo                         Y000

Mahoo                         M000

Microsoft                     M262

Macrosoft                     M262

Minisoft                      M521

Microshoft                    M262

Zicrosoft                     Z262

Zaposoft                      Z121

Millisoft                     M421

Nanosoft                      N521

Megasoft                      M221

Picosoft                     

 << 上一页  [21] [22] [23] [24] [25] [26]  下一页

打印本文 打印本文 关闭窗口 关闭窗口