ACCESS LIKE问题
我发现有时候用%作为通配符不行,需要用*号作为通配符,这是怎么回事,同样是ACCESS数据库,怎么有时候用%有时候用*想不通,请高手解答select*fromawhere...
我发现有时候用%作为通配符不行,需要用*号作为通配符,这是怎么回事,同样是ACCESS数据库,怎么有时候用%有时候用*想不通,请高手解答
select * from a where dd like '%工%'
select * from b where dd like '*工*'
以上两句在同一个ACCESS数据库中用,为什么 B表不能用%,而要用*号,让我很想不通 展开
select * from a where dd like '%工%'
select * from b where dd like '*工*'
以上两句在同一个ACCESS数据库中用,为什么 B表不能用%,而要用*号,让我很想不通 展开
2个回答
展开全部
这是因为运行这些SQL语句时所使用的数据库引擎语法不同所致,ANSI-89 SQL 语法,通配符为*。 ANSI-92 SQL 语法,通配符为“%”。
直接在ACCESS里面通配符为“ * ”号;在程序里面如果使用ADO等数据访问对象访问编辑ACCESS数据库里的数据,则通配符为“%”号。
一般来讲直接在ACCESS对象(例如查询、窗体、表等)里面应该使用“*”号通配符;如果在程序里使用数据访问API,例如ADO等间接访问ACCESS,就应该使用“%”通配符。
实在是不确定的话,那就用笨办法,那个输出结果正确就用那个通配符。
直接在ACCESS里面通配符为“ * ”号;在程序里面如果使用ADO等数据访问对象访问编辑ACCESS数据库里的数据,则通配符为“%”号。
一般来讲直接在ACCESS对象(例如查询、窗体、表等)里面应该使用“*”号通配符;如果在程序里使用数据访问API,例如ADO等间接访问ACCESS,就应该使用“%”通配符。
实在是不确定的话,那就用笨办法,那个输出结果正确就用那个通配符。
追问
问题是我都是在ACCESS里的查询窗进行的,另外我是在ASP下用,一直用的%
追答
直接在ACCESS查询对象里应该使用*通配符,通过ASP时那就要看你使用什么方式访问Access了,ASP通常使用ADO或更新的ADO.net,那就要使用%通配符了。
一般来讲用EXECUTE语句运行SQL都是用%通配符;DoCmd.RunSQL 则使用*通配符。
在ACCESS查询对象里不应该出现A表使用*通配符,而B表使用%通配符的情况,你说的这种现象比较神奇。要不,我将我的邮箱用HI告诉你,请将那个ACCESS数据库发过来,我实际检查一下发生了什么事情。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询