mysql 关于hibernate查询(字段数据为空值)

时间:2022-09-18 21:10:25
table  news
字段
--id--newsTitle(varchar)--newsFrom(varchar)


代码:
public class DaoTest {

public static void main(String[] args) {
Session session = HibernateUtil.getSession();
Transaction tx = null;
try {
tx=session.beginTransaction();
String kew1=null;
String kew2="";
Query query=session.createQuery("from Tnews t where t.newsFrom ='"+kew1+"'");
List list=query.list();
System.out.println(list.size());
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx!=null) {
tx.rollback();
}
} finally {
HibernateUtil.closeSession();
}
}

}



如:
mysql query browser 窗口
newssFrom
--娱乐头条
--NULL
--    
--新闻早报
--NULL
--电影快报
--NULL
--南国早报
--
--广州日报


本人想查询字段newsFrom为空值或者无数据的 也就是没新闻来源的   新闻;
当取值kew1时,查询数据为0;
当取值kew2时,可以查出数据来,但不是我想要的,也就是查到2条数据,我想要查的是包含上面显示为NULL的的数据。,结果应该为5才行。

请问我错在那里,或者如何写sql查询语句等!

5 个解决方案

#1




建议能在贴子中把表结构,数据,期望的结果描述出来,这样获得解决方案的机会更多。

参考一下个人觉得比较好的提问方式。得到回复的机率会大一些

http://www.accessbbs.cn/bbs/viewthread.php?tid=19552
http://www.accessbbs.cn/bbs/viewthread.php?tid=19546

#2


引用 1 楼 ACMAIN_CHM 的回复:
建议能在贴子中把表结构,数据,期望的结果描述出来,这样获得解决方案的机会更多。 

参考一下个人觉得比较好的提问方式。得到回复的机率会大一些 

http://www.accessbbs.cn/bbs/viewthread.php?tid=19552 
http://www.accessbbs.cn/bbs/viewthread.php?tid=19546 



表news
-----------------------------------------------------------
id      newsTitle(varchar)     newssFrom(varchar)
-----------------------------------------
1        美容                    娱乐头条 
2         公车事件                   NULL 
3        达人          
4        山寨                    新闻早报 
5         武陵                       NULL 
6        成龙                    电影快报 
7         诸葛孔明                   NULL 
8        洪水                    南国早报 
9         张飞         
10       亚运会                  广州日报 
-------------------------------------------
注:NULL为mysql query browser 窗口显示的,其实没数据的。 
字段、数据及属性上面都有了。
期望把没有新闻来源(newsFrom)的新闻查询出来!
希望仁兄能看懂了,哈哈

#3




有新闻来源(newsFrom)的新闻查询出来!
你还是没有说明什么是 "没有新闻来源" , 所以我只能自己猜,结果如下。


mysql> select * from news;
+----+-----------+-----------+
| id | newsTitle | newssFrom |
+----+-----------+-----------+
|  1 | 美容      | 娱乐头条  |
|  2 | 公车事件  | NULL      |
|  3 | 达人      |           |
|  4 | 山寨      | 新闻早报  |
|  5 | 武陵      | NULL      |
|  6 | 成龙      | 电影快报  |
|  7 | 诸葛孔明  | NULL      |
|  8 | 洪水      | 南国早报  |
|  9 | 张飞      |           |
| 10 | 亚运会    | 广州日报  |
+----+-----------+-----------+
10 rows in set (0.00 sec)

mysql>
mysql> select * from news where newssFrom is null or newssFrom='';
+----+-----------+-----------+
| id | newsTitle | newssFrom |
+----+-----------+-----------+
|  2 | 公车事件  | NULL      |
|  3 | 达人      |           |
|  5 | 武陵      | NULL      |
|  7 | 诸葛孔明  | NULL      |
|  9 | 张飞      |           |
+----+-----------+-----------+
5 rows in set (0.00 sec)

mysql>

#4


其实就像你上面写的吗,就是查询字段newsFrom为 ' '和NULL的news(新闻)。
很疑自己的表达能力了,哈!
谢谢了!

#5


谢谢,解决这个问题了
Query query=session.createQuery("from Tnews t where t.newsFrom is '"+kew2+"' or t.newsFrom is null" )
可以查出5行数据

#1




建议能在贴子中把表结构,数据,期望的结果描述出来,这样获得解决方案的机会更多。

参考一下个人觉得比较好的提问方式。得到回复的机率会大一些

http://www.accessbbs.cn/bbs/viewthread.php?tid=19552
http://www.accessbbs.cn/bbs/viewthread.php?tid=19546

#2


引用 1 楼 ACMAIN_CHM 的回复:
建议能在贴子中把表结构,数据,期望的结果描述出来,这样获得解决方案的机会更多。 

参考一下个人觉得比较好的提问方式。得到回复的机率会大一些 

http://www.accessbbs.cn/bbs/viewthread.php?tid=19552 
http://www.accessbbs.cn/bbs/viewthread.php?tid=19546 



表news
-----------------------------------------------------------
id      newsTitle(varchar)     newssFrom(varchar)
-----------------------------------------
1        美容                    娱乐头条 
2         公车事件                   NULL 
3        达人          
4        山寨                    新闻早报 
5         武陵                       NULL 
6        成龙                    电影快报 
7         诸葛孔明                   NULL 
8        洪水                    南国早报 
9         张飞         
10       亚运会                  广州日报 
-------------------------------------------
注:NULL为mysql query browser 窗口显示的,其实没数据的。 
字段、数据及属性上面都有了。
期望把没有新闻来源(newsFrom)的新闻查询出来!
希望仁兄能看懂了,哈哈

#3




有新闻来源(newsFrom)的新闻查询出来!
你还是没有说明什么是 "没有新闻来源" , 所以我只能自己猜,结果如下。


mysql> select * from news;
+----+-----------+-----------+
| id | newsTitle | newssFrom |
+----+-----------+-----------+
|  1 | 美容      | 娱乐头条  |
|  2 | 公车事件  | NULL      |
|  3 | 达人      |           |
|  4 | 山寨      | 新闻早报  |
|  5 | 武陵      | NULL      |
|  6 | 成龙      | 电影快报  |
|  7 | 诸葛孔明  | NULL      |
|  8 | 洪水      | 南国早报  |
|  9 | 张飞      |           |
| 10 | 亚运会    | 广州日报  |
+----+-----------+-----------+
10 rows in set (0.00 sec)

mysql>
mysql> select * from news where newssFrom is null or newssFrom='';
+----+-----------+-----------+
| id | newsTitle | newssFrom |
+----+-----------+-----------+
|  2 | 公车事件  | NULL      |
|  3 | 达人      |           |
|  5 | 武陵      | NULL      |
|  7 | 诸葛孔明  | NULL      |
|  9 | 张飞      |           |
+----+-----------+-----------+
5 rows in set (0.00 sec)

mysql>

#4


其实就像你上面写的吗,就是查询字段newsFrom为 ' '和NULL的news(新闻)。
很疑自己的表达能力了,哈!
谢谢了!

#5


谢谢,解决这个问题了
Query query=session.createQuery("from Tnews t where t.newsFrom is '"+kew2+"' or t.newsFrom is null" )
可以查出5行数据