Rss & SiteMap
搭建论坛 http://bbs.diylsoft.com:8118/starforum/index.asp
我现在正做的一个数据管理系统,前段时间测试都完全正常,今天偶然出现了错误。经仔细检查发现,是ADO查询语句中单引号和双引号的问题。该SQL语句类似于如下格式:
错误的语句:{select * from 销售日报 where 备注信息 like '% ' %'}
{select * from 销售日报 where 备注信息 like "% " %"}
问题就在<备注信息>中的条件值部分。如果输入的条件值中含有单引号',错误出现;如果把这个语句中的单引号改成双引号,则没问题。下面就是正确的语句,可以正常执行:
{select * from 销售日报 where 备注信息 like '% " %'}
{select * from 销售日报 where 备注信息 like "% ' %"}
由于我设计的系统中,允许用户输入<备注信息>中的任意关键字进行检索查询,就是说,用户很有可能就输入一个单引号或者双引号,请问我这个SQL查询语句该怎样写?
实际上,你在第一楼已经讲解的很明白了,这是SQL语法的问题。在SQL语言中“单引号(')”和“双引号(")”,在条件语句(where)中查询字符串变量的时,需要用单引号或双引号,括起来。
如::{select * from 销售日报 where 备注信息 like '% ' %'}
你的本意是,查询备注信息中,包含“'”的信息;但是,第二个单引号,与第一个单引号,已经形成了SQL语句,而第三个单引号,成了孤号,你的SQL语法当然出错了。每一个语言都有语法和关键字之分,不能不照顾 语法和关键字,而随意应用。这个问题与搭建之星无关。