求教:同一条sql语句,在navicat里面执行能正常得出结果,在java程序中返回null

GO丶GO 2019-11-06 02:29:26
SELECT
b.hours AS hours,
IFNULL( a.avgNumber, 0 ) AS avgNumber
FROM
(
SELECT
DATE_FORMAT( HOUR, '%H' ) + 1-1 hours
FROM
( SELECT @cdate := DATE_ADD( @cdate, INTERVAL - 1 HOUR ) HOUR FROM t_platform_log LIMIT 0, 24 ) f
ORDER BY
hours
) b
LEFT JOIN (
SELECT
DATE_FORMAT( f_create_time, '%H' ) + 1-1 hours,
ROUND( count( * ) / ( timestampdiff( DAY, '2019-10-27', '2019-11-05' ) + 1 ), 2 ) avgNumber
FROM
t_platform_log
WHERE
1 = 1
AND f_create_time >= '2019-10-27 00:00:00'
AND f_create_time <= '2019-11-05 23:59:59'
GROUP BY
DATE_FORMAT( f_create_time, '%H' )
) a ON a.hours = b.hours

navicat中执行的结果:


java程序中执行的结果:


java代码:
...全文
2415 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2019-12-14
  • 打赏
  • 举报
回复
老哥,我的问题是这样解决的,通过拼接sql语句后是这样的
SELECT * FROM user WHERE Username=" username "
但是这样会报你的sql语句语法有误
如果去掉双引号
SELECT * FROM user WHERE Username=username
那你就只能输入纯数字的用户,如果带字母的会告诉你找不到
但是如果我在第一句的后面加一个分号
SELECT * FROM user WHERE Username=" username ";
就可以执行这条语句了
zrd122767 2019-11-20
  • 打赏
  • 举报
回复
引用 楼主 GO丶GO的回复:
SELECT
b.hours AS hours,
IFNULL( a.avgNumber, 0 ) AS avgNumber
FROM
(
SELECT
DATE_FORMAT( HOUR, '%H' ) + 1-1 hours
FROM
( SELECT @cdate := DATE_ADD( @cdate, INTERVAL - 1 HOUR ) HOUR FROM t_platform_log LIMIT 0, 24 ) f
ORDER BY
hours
) b
LEFT JOIN (
SELECT
DATE_FORMAT( f_create_time, '%H' ) + 1-1 hours,
ROUND( count( * ) / ( timestampdiff( DAY, '2019-10-27', '2019-11-05' ) + 1 ), 2 ) avgNumber
FROM
t_platform_log
WHERE
1 = 1
AND f_create_time >= '2019-10-27 00:00:00'
AND f_create_time <= '2019-11-05 23:59:59'
GROUP BY
DATE_FORMAT( f_create_time, '%H' )
) a ON a.hours = b.hours

navicat中执行的结果:


java程序中执行的结果:


java代码:
你这样拼SQL很容易出错的  …
PoemOfficer 2019-11-20
  • 打赏
  • 举报
回复
看了你前面的回答 应该是maps有值 但是里面为null和 0.00 所有你想把你拼接的参数全部写死
如:sql.append(" and DJLB = \'"+2019-11-20 00:00:00+"\'");
PoemOfficer 2019-11-20
  • 打赏
  • 举报
回复
或者试一试,先取第一行
Map<String, Object> map= maps.get(0);
输出:map.get("hous")
PoemOfficer 2019-11-20
  • 打赏
  • 举报
回复
1、看maps是否有值
2、能遍历输出,说明有值(看输出的行树和数据库查询的行数是否相同)行数相同 说明取到了,换一种输出方式
3、建议这样写

KeepSayingNo 2019-11-16
  • 打赏
  • 举报
回复
你把stringbuilder 拼的结果打出来,放到 navicat里面执行下不就行了吗
  • 打赏
  • 举报
回复
能循环基本就是取到了。map.get里面改成大写试一试,mysql默认设置我记得是大写。
猿陆柒 2019-11-13
  • 打赏
  • 举报
回复
打个断点看一下数据是一开始都没拿到还是中途丢失了
xiaoxiaoxuea 2019-11-12
  • 打赏
  • 举报
回复
进来学习一下
wqaz2wsx 2019-11-12
  • 打赏
  • 举报
回复
学习中,sql博大精深
皇夜_ 2019-11-11
  • 打赏
  • 举报
回复
我觉得你最好把映射关系发出来
  • 打赏
  • 举报
回复
查询结果字段和对象实体不匹配
weixin_45842191 2019-11-09
  • 打赏
  • 举报
回复
可以吧,有点麻烦
weixin_38247148 2019-11-09
  • 打赏
  • 举报
回复
感觉是不是数据库连错了,或者少空格。
小林子(yhl) 2019-11-08
  • 打赏
  • 举报
回复
Angels_Descent 2019-11-08
  • 打赏
  • 举报
回复
引用 50 楼 西二旗头号死敌7的回复:
[quote=引用 49 楼 Angels_Descent 的回复:] [quote=引用 45 楼 西二旗头号死敌7的回复:]你这sql写的那真是乱七八糟啊,不会参数绑定吗,sql注入 怕不怕
拼接的不保险,where1=1[/quote][/quote] 加上 ;drop table绝对凉凉
  • 打赏
  • 举报
回复
引用 49 楼 Angels_Descent 的回复:
[quote=引用 45 楼 西二旗头号死敌7的回复:]你这sql写的那真是乱七八糟啊,不会参数绑定吗,sql注入 怕不怕
拼接的不保险,where1=1[/quote]搞笑的吗?
  • 打赏
  • 举报
回复
引用 49 楼 Angels_Descent 的回复:
[quote=引用 45 楼 西二旗头号死敌7的回复:]你这sql写的那真是乱七八糟啊,不会参数绑定吗,sql注入 怕不怕
拼接的不保险,where1=1[/quote]
Angels_Descent 2019-11-08
  • 打赏
  • 举报
回复
引用 45 楼 西二旗头号死敌7的回复:
你这sql写的那真是乱七八糟啊,不会参数绑定吗,sql注入 怕不怕
拼接的不保险,where1=1
Angels_Descent 2019-11-08
  • 打赏
  • 举报
回复
取一列数据有这么麻烦吗
加载更多回复(41)

50,549

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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