Java 如何确定表中是否包含SQL中的值?
我觉得我在这里遗漏了一些非常明显的东西,但似乎唯一的方法是获取值,然后查看它是否返回null(空)值,我宁愿不这样做 SQL中是否有与List.contains(对象o)等效的对象?或者JDBC具有这种性质?如果是,是什么?多谢各位 编辑: 我正在使用Microsoft Access 2013 编辑2: 不幸的是,我没有任何有用的代码来显示,但这里是我试图做的要点。它一点也不独特。我想要一个方法(Java),它返回存储在数据库中的用户值。如果该用户以前未添加到数据库中,则应添加该用户,并应设置该用户的默认值。然后将返回这些新创建的值。如果一个播放器已经被添加到数据库中(用户名作为主键),我不想覆盖已经存在的数据 编辑3:Java 如何确定表中是否包含SQL中的值?,java,sql,ms-access,jdbc,ms-access-2013,Java,Sql,Ms Access,Jdbc,Ms Access 2013,我觉得我在这里遗漏了一些非常明显的东西,但似乎唯一的方法是获取值,然后查看它是否返回null(空)值,我宁愿不这样做 SQL中是否有与List.contains(对象o)等效的对象?或者JDBC具有这种性质?如果是,是什么?多谢各位 编辑: 我正在使用Microsoft Access 2013 编辑2: 不幸的是,我没有任何有用的代码来显示,但这里是我试图做的要点。它一点也不独特。我想要一个方法(Java),它返回存储在数据库中的用户值。如果该用户以前未添加到数据库中,则应添加该用户,并应设置该
我已经解决了这个问题!请参阅下面的答案。查看SQL表是否包含列上带有某些条件的行的唯一方法是实际执行SQL查询。我不明白你为什么不那样做。只需确保在将约束结果的列上有一个索引即可。此外,为了提高速度,请使用
count
防止从行中检索所有数据
SELECT count(*) FROM foos WHERE bar = 'baz'
假设您在
栏
列上有一个索引,这个查询应该非常快,您所要做的就是检查它是否返回>0。如果有,则有符合条件的行。您可以简单地使用带有条件的查询
例如,如果必须检查具有特定列的记录,可以使用where
条件
select * from table where column1 = 'checkvalue'
您可以使用count
属性检查指定条件下存在的记录数
select count(*) from table where column1 = 'checkvalue'
您可以使用“IF EXISTS
”,它返回布尔值1
或0
select
if(
exists( select * from date1 where current_date()>now() ),
'today > now',
'today is not > now'
) as 'today > now ?' ;
+--------------------+
| today > now? |
+--------------------+
| today is not > now |
+--------------------+
1 row in set (0.00 sec)
另一个例子:
SELECT IF(
EXISTS( SELECT col from tbl where id='n' ),
colX, colY
) AS 'result'
FROM TBL;
我创建了以下方法,据我所知,该方法非常有效。(使用java.sql包)
这是一个非常简单和非常基本的方法,但希望它能在将来帮助别人。
如果有什么问题,请告诉我。我不希望任何人学习或使用写得不好的代码。我也是sql新手,我正在使用Oracle
在Oracle中,假设我们有:TYPE:value
我们可以使用:
where value not in (select TYPE from table)
确保表的列类型中不存在值
不知道这是否有帮助。有什么问题从其中选择1=限制1代码>?我想没有什么问题。我对SQL非常陌生,而且我已经习惯了那些具有处理该操作的预先存在的函数的类型,例如List.contains(Object o)。我总是可以用Java创建自己的方法来为我执行该操作。我总是尽可能地限制重复的代码,我会经常使用它。你能描述一下你希望代码做什么吗?假设您有一个查询,查询应该返回什么?我是SQL新手,我尝试做的并不是唯一的。如果以前从未使用过我的应用程序的人尝试使用数据库,则应添加他们,并将他们的用户名作为主键。如果已经添加了它们,则代码不应再次尝试将它们添加到数据库中。在JDBC中,您肯定应该将PreparedStatement
与静态SQL结合使用,而不是使用来自用户的字符串来计算某个内容。否则,你可能会让sql注入的恶魔进来……如果这是一个愚蠢的问题,我很抱歉,但是我该如何使用JDBC来做这件事呢?@TacoManStan:检查我的另一个例子。我没有收到你的回复。特别是,我没有得到没有返回类型的方法签名。
where value not in (select TYPE from table)