【发布时间】:2019-07-31 16:56:47
【问题描述】:
我正在为一个在线数据库课程做一个小项目,我想知道你是否可以帮助我解决我遇到的问题。
我有一个网页正在搜索电影数据库并使用电影初始输入字段、数字输入字段和代码字段检索特定列。这些都将转换为字符串并用作查询的用户输入。
以下是我之前尝试过的:
select A.CD, A.INIT, A.NBR, A.STN, A.ST, A.CRET_ID, A.CMNT, A.DT
from MOVIE_ONE A
where A.INIT = :init
AND A.CD = :cd
AND A.NBR = :num
页面必须搜索的方式有三种不同的情况:
- (首字母和编号)
- (代码)
- (首字母和号码和代码)
案例必须是独立的,因此如果某个字段为空,但满足某个案例,则搜索通过。它也必须在一个查询中。我被困在如何实施这些案例上。
查询中的参数取自 SQLJ 文件中方法中的 Java 参数。
如果您能就我如何解决这个问题提供一些帮助,我将不胜感激!
【问题讨论】:
-
您需要使用特定的 SQL RDBMS 来标记您的问题,但通常如果参数为空,您的
where子句中的每个条件都会返回 true;例如(A.INIT = :init or :init is null) and (A.CD = :cd or :cd is null)之类的东西。 -
我确定这是一个错字,但是您的 select 子句中有一个名为 A.NBR 的字段,而您的 where 子句中有一个名为 A._NBR 的字段,我怀疑它们指的是相同的字段。