select * from a where create=' "+user.getUser_id()+" '

select * from a where create=' "+user.getUser_id()+" '这句sql为什么加引号?为什么加两个引号 加两个加号?

阅读 3.5k
3 个回答

字符串拼接而已,应该是

"select * from a where create='" + user.getUser_id() + "'"

去掉字符串外边的『引号』 ,把user.getUser_id()替换成实际的值,如『1』,是不是会更直观一点?

select * from a where create=' 1 '

单引号是因为字符串对比需要用单引号括起来,双引号和加号是连接字符串用的

"select * from a where create=' "+user.getUser_id()+" ' "
你整个语句应该是这样的吧,这整个应该是3个字符串的拼接,前面select * from a where create=' 这是一个字符串,然后user.getUser_id() 获取的也应该是一个字符串,加上最后的 ' 这个字符串,拼接起来成为一整个字符串,单引号的使用是作为sql语句的部分,sql中对字符型进行条件查询的时候是要加 ' '号
假如user.getUser_id()返回"aaa"
不加单引号,最终到数据库中查询语句就是这样
select * from a where create=aaa
会导致sql查询报错的
加上单引号
select * from a where create='aaa'
这样就是没问题的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题