SQL语句问题?
query="selectproduct_id,product_name,product_quatityfromproductwhereproduct_idlike'"&...
query = "select product_id,product_name,product_quatity from product where product_id like '" & product_id & "'"
和 query = "select product_id,product_name,product_quatity from product where product_id = '" & product_id & "'"(把like换成=)
有什么区别?
为什么第一句能运行成功,而第二句运行不成功,说数据类型不匹配?
那什么时候有=?什么时候用LIKE?
我现在遇到的问题是有两个功能完全相同的界面,所使用的代码也基本一样,当然所操作的数据库中的数据是不同的.在运行系统时先运行的界面没有错误,后运行的界面就出现错误.而我把系统关了重新打开,再运行第二个界面就能成功.我在想是不是LIKE 和=的问题? 展开
和 query = "select product_id,product_name,product_quatity from product where product_id = '" & product_id & "'"(把like换成=)
有什么区别?
为什么第一句能运行成功,而第二句运行不成功,说数据类型不匹配?
那什么时候有=?什么时候用LIKE?
我现在遇到的问题是有两个功能完全相同的界面,所使用的代码也基本一样,当然所操作的数据库中的数据是不同的.在运行系统时先运行的界面没有错误,后运行的界面就出现错误.而我把系统关了重新打开,再运行第二个界面就能成功.我在想是不是LIKE 和=的问题? 展开
展开全部
SELECT
dbo.ca_hr_perinfo.perid,
dbo.ca_hr_peredu.name,dbo.ca_hr_perinfo.birth,dbo.ca_hr_perinfo.realname,dbo.ca_hr_perinfo.updata,dbo.ca_hr_perinfo.sex,
dbo.ca_hr_peredu.education,
dbo.ca_hr_perinfo.postdate,dbo.ca_hr_peredu.speciality,dbo.ca_hr_perinfo.experience
FROM
dbo.ca_hr_perinfo
left
JOIN
dbo.ca_hr_peredu
ON
dbo.ca_hr_perinfo.perid
=
dbo.ca_hr_peredu.perid
where
dbo.ca_hr_perinfo.status=1
and
(ca_hr_peredu.education
like
'%高中%'
or
ca_hr_peredu.education
like
'%中专%'
or
ca_hr_peredu.education
like
'%大专%'
or
ca_hr_peredu.education
like
'%本科%')
and
ca_hr_perinfo.yyyy
>=
'1'
and
ca_hr_perinfo.yyyy<=
'2'
and
Year(getdate())-left(ca_hr_perinfo.birth,4)
>=
'23'
and
Year(getdate())-left(ca_hr_perinfo.birth,4)
<=
'27'
and
dbo.ca_hr_perinfo.sex
like
'%男%'
and
datediff(day,ca_hr_perinfo.updata,getdate())<'90'
order
by
ca_hr_perinfo.updata
desc
试试,应该是这几个or的问题
dbo.ca_hr_perinfo.perid,
dbo.ca_hr_peredu.name,dbo.ca_hr_perinfo.birth,dbo.ca_hr_perinfo.realname,dbo.ca_hr_perinfo.updata,dbo.ca_hr_perinfo.sex,
dbo.ca_hr_peredu.education,
dbo.ca_hr_perinfo.postdate,dbo.ca_hr_peredu.speciality,dbo.ca_hr_perinfo.experience
FROM
dbo.ca_hr_perinfo
left
JOIN
dbo.ca_hr_peredu
ON
dbo.ca_hr_perinfo.perid
=
dbo.ca_hr_peredu.perid
where
dbo.ca_hr_perinfo.status=1
and
(ca_hr_peredu.education
like
'%高中%'
or
ca_hr_peredu.education
like
'%中专%'
or
ca_hr_peredu.education
like
'%大专%'
or
ca_hr_peredu.education
like
'%本科%')
and
ca_hr_perinfo.yyyy
>=
'1'
and
ca_hr_perinfo.yyyy<=
'2'
and
Year(getdate())-left(ca_hr_perinfo.birth,4)
>=
'23'
and
Year(getdate())-left(ca_hr_perinfo.birth,4)
<=
'27'
and
dbo.ca_hr_perinfo.sex
like
'%男%'
and
datediff(day,ca_hr_perinfo.updata,getdate())<'90'
order
by
ca_hr_perinfo.updata
desc
试试,应该是这几个or的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
like是模糊查询,也是就你输入一个a ,如果数据库中有这其中几项("aaaa","aaabbb","bbaaa")那么查询所返回的数据就是这些里边包含a的数据,而”=“是,你输入a,那么之查询包含a的数据,如果没有匹配a的数据,那么什么也不返回。还有就是1楼的陈述.
至于什么时候用=或者用Like那就看你的具体情况了。一般要求严格的数据就用=,不怎么严格的就like了
至于什么时候用=或者用Like那就看你的具体情况了。一般要求严格的数据就用=,不怎么严格的就like了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Like是模糊查询,是用字符串来处理的
而=就不一样了,你数据库的字段是什么类型就是什么类型,除非你用转换函数先转换,不然一定要一致才行
而=就不一样了,你数据库的字段是什么类型就是什么类型,除非你用转换函数先转换,不然一定要一致才行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询