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


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

sql 数据库 mysql

maggie 9 years, 5 months ago

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

一方纯爷们 answered 9 years, 5 months ago

"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'
这样就是没问题的

真杯具那啥 answered 9 years, 5 months ago

字符串拼接而已,应该是

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

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

select * from a where create=' 1 '

最后的终焉 answered 9 years, 5 months ago

Your Answer