请教SQL语言专家

jury 2000-08-22 04:22:00
setlect * from product where pname like '%3'-abc%' order by pname语句中
因为搜索条件带'号,语法出错,怎么办?
...全文
304 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangzi 2000-08-22
  • 打赏
  • 举报
回复
很容易,由于‘是SQL的字符串定界符,所以要转义,重复就可以了,
kwin 2000-08-22
  • 打赏
  • 举报
回复
把like后Order前中的所有内容用一个变量s代替
s="%3'-abc%"即可。
huntout 2000-08-22
  • 打赏
  • 举报
回复
replace(s, "'", "''")
sql = "select * from product where pname like '%" & s & "%' order by pname"
xtra 2000-08-22
  • 打赏
  • 举报
回复
在程序里面做判断如果包含单引号则在单引号的前面加上转义字符,然后在SQL语句最后加入ESCAPE 转义字符。
或者可以用[]将单引号括起来。其它不做改动。
jury 2000-08-22
  • 打赏
  • 举报
回复
对不起,我没有讲清楚,参数"3'-abc"是客户表单输入的,怎么办呢?
huntout 2000-08-22
  • 打赏
  • 举报
回复
用兩個'代替︰)

setlect * from product where pname like '%3''-abc%' order by pname
xtra 2000-08-22
  • 打赏
  • 举报
回复
ESCAPE '!' 的作用是将!作为转义字符使用,跟在转义字符后面的字符将不再作为统配符,而是
表示原来的含义。在这里跟在!后面的单引号就是自己了。不知道现在你好了没有?
jury 2000-08-22
  • 打赏
  • 举报
回复
xtra朋友,我不知道ESCAPE '!'是什么,能解释一下吗?谢谢!
xtra 2000-08-22
  • 打赏
  • 举报
回复
SELECT * FROM product WHERE pname LIKE '%3!'-abc%' ORDER BY pname ESCAPE '!'
byfree 2000-08-22
  • 打赏
  • 举报
回复
可以用replace()把'号换成别的符号

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧