问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于mysql查询语句的问题

发布网友 发布时间:2022-04-29 04:33

我来回答

6个回答

热心网友 时间:2022-04-09 02:51

用+号拼接,是为了在加号中间可以放入变量
你说的那种也是可以的

但是在数据库里如果值是字符串或 是日期 要用单引号包围,所以才这样用
如果你用的是preparedstatement会简单很多
按你的问题可以这样写:
PreparedStatement ps=conn.prepareStatement("select * from tb_message where filedname = ? and sort = ?);
再根据你的字段类型选用合适的填值方法就可以了
如果你的filename是字符串类型,sor 是数字类型可以这样写:
ps.setString(1, value) 1表示填充第一个问号 value参数值是一个字符串
ps.setInt(2,value) 2表示第二个问号,value是一个数字类型

热心网友 时间:2022-04-09 04:09

fieldName、value、mtype 这些是你定义的String类型变量,他们的值是你传入的。假设fieldName=”myfname“;value="jack";mtype="1"。那么你的语句就等价于:
PreparedStatement ps=conn.prepareStatement("select * from tb_message where myfname='jack' and sort='1'");
如果你直接使用"select * from tb_message where fieldName=value and sort=mtype"的话,你的sql中就无法获取fieldName的值"myfname",你的值就传不进来了。这是为了将fieldName、value、mtype 这些是你定义的String类型变量的值动态的拼入sql语句中。另外字符串类型的的值在sql中要使用单引号包围起来所以你看到的是'"++"'。外面的是单引号,里面是双引号。
(两个字符串拼接是使用+的,例如:
String s = "kac";
String b = ”_aaa";
String d1="hello sb!“;
String d2="hello "+s+b;
那么d1的值就是"hello sb",d2的值就是"hello kac_aaa")。
你可以把你的sql语句打印出来,然后查看sql语句有什么不同就清楚了。

热心网友 时间:2022-04-09 05:44

这个不是sql语法的要求,而是你的编程语言的要求:
在程序里,整个sql语句就是一字符串,字符串是用“”双引号括起来的,value、mtype都是程序字符串变量,多个字符串衔接时就用加号。
而在sql语法中,字符串使用 ' 单引号括起来的,如'abc',假如value="asd",我们要用value的值(是value的值,而不是“value”这几个字符)'abc'换成就应该是'" value "',但在程序中字符串连接时用+,于是应该写成'"+ value +"',所以单引号+双引号,不是谁在前在后的问题,而应该是看起来“双引号在单引号内”
希望对你理解有帮助追问1.您说的这是编程语言的要求
我原本用的是SQL2005 这个范例中用的是mysql "++"这个是mysql自己的语言要求吗?
2.为什么fieldName用了"++",而sort没用?是因为fieldName为字符串而sort为变量吗?
3.于是应该写成'"+ value +"' 这句不太懂 能帮忙再解释下吗?

追答1、sql05不是编程语言,编程语言,如在C#中,也要这么写:"++",在vb中可以是"++"或"&&"
2、fieldName是变量,而sort是已知的数据库字段,fieldName的值才是数据库字段的名称
3、简单写:
" select * from tb_message where field1='abc' ",现在我们要把abc给换掉,可以先把它拆分一下
" select * from tb_message where field1='abc' "
=" select * from tb_message where field1='"+"abc"+"' "
然后用value替换"abc"即:
=" select * from tb_message where field1='"+value+"' "
就出来了
呃,表述能力有限,就这样吧......

热心网友 时间:2022-04-09 07:35

PreparedStatement ps=conn.prepareStatement("select * from tb_message where "+fieldName+" ='"+value+"' and sort='"+mtype+"'");
表达的是 此SQL语句的where后面紧跟的字段、值是可以输入的,而后面的sort字段是不可以改变了的,只能输入它的值
“select * from tb_message where ” ,“=”,“and sort=‘ ”,“ ’ ”是固定的,之间的字段是可以变的了
比如:
select * from tb_message where messageId=2 and sort='1';
select * from tb_message where messageType=3 and sort='1';

应该懂了吧,呵呵

热心网友 时间:2022-04-09 09:43

conn.prepareStatement(“”)是一个方法,它的参数是一个字符串;
fieldName,value,mtype都是程序的变量啊;
假设:
fieldName="aa";
value="bb";
mtype="cc";
那么"select * from tb_message where "+fieldName+" ='"+value+"' and sort='"+mtype+"'"这个字符串其实就是"select * from tb_message where aa ='bb' and sort='cc' "
最后就是conn.prepareStatement(" select * from tb_message where aa ='bb' and sort='cc' ")

热心网友 时间:2022-04-09 12:08

语句里接收变量的写法。不同编程语言不一样。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
主板debug接口怎么使用 Chloe的词根来自哪里 chloe是哪里的牌子 虚言状是怎么讲的 不堪言状的近义词 言状造句 千岛湖森林公园铁索桥地址在哪里? 青岛巨峰风景区-铁索桥地址在哪里? 九潭铁索桥地址在哪里? 铁索桥地址在哪里? 可以推荐一个剪辑视频软件,能免费的,可倍速 mysql如何查询指定id号的数据? 为老年人买助听器哪个牌子好/ 老人助听器用什么牌子好?价格呢? 老年哪个牌子助听器性价比比较高? 韩剧《狗与狼的时间》共多少集? 老年人助听器什么牌子好 狗和狼的时间 老人用什么牌子的助听器好? 给我立个作文题目作文:一位年轻人和新婚妻子经常吵架,他很懊悔,埋怨自己结婚前看走了眼,决定征求父亲 老年人的助听器哪个牌子质量好? 好造句怎么写? (狼和狗的时间)国语版在哪里有的看? 找一部电影,讲的是一个法国贵族在新婚夜受诅咒杀死自己的新婚妻子,穿越时空来到现代改变命运的故事 老人助听器哪个牌子好? 〈狗和狼的时间〉具体是什么时候播的 使用造句子 你对公职人员骗新婚妻子服毒致死骗保一案,有何看法? 老年助听器哪个品牌好 用 有用 造句一年级 求解答,有什么制作视频软件是可以调整视频倍速的?! 卤肉技术学习能学到正配方是关键!正宗卤菜大师教你核心配方 一百亩的水库养鱼一年有多少利润? 池塘养鱼的利润大概多少 为什么老人喜欢听收音机? 养鱼利润很高吗 哪有专业学习卤菜的制作方法? 一亩鱼塘,一年养鱼赚多少钱 能收听电视节目的收音机,有知道的吗? 一亩鱼塘的纯利润是多少 听汽车里的收音机广播天津动听88.5 一亩全饲料养鱼有多少利润? 在山上想听收音机,大家推荐一下吧。 池塘养鱼我有80亩鱼塘一年的净利润大概能有多少? 不到10亩的鱼塘养鱼能赚钱吗 100亩冷水水库养鱼的利润率 池塘养鱼1亩能得多少利润(精养,包括人工资) 一亩鱼塘纯收入多少钱 一百亩鱼塘人工养鲤鱼年利润多少 一级建造师证书都有哪些好处?