Java 是否可以使用;其中;子句来选择SQL语句中的所有记录?
晚上好,我很好奇是否可以在SQL语句中创建一个WHERE子句来显示所有记录 下面是一些解释: 随机SQL语句(Java)-(JSP示例),正常情况Java 是否可以使用;其中;子句来选择SQL语句中的所有记录?,java,mysql,sql,sql-server,Java,Mysql,Sql,Sql Server,晚上好,我很好奇是否可以在SQL语句中创建一个WHERE子句来显示所有记录 下面是一些解释: 随机SQL语句(Java)-(JSP示例),正常情况 如果(=“全部”){ SqlStatement=“从表中选择*_示例”; }否则{ SqlStatement=“从第一列为“”的表格示例中选择*”; } 但是,我可以只编写一条SQL语句来提示所有记录吗?如下所示: (Java)-(JSP示例) String ShowAll=”“; 如果(=“全部”){ ShowAll=*; }否则{ ShowAl
如果(=“全部”){
SqlStatement=“从表中选择*_示例”;
}否则{
SqlStatement=“从第一列为“”的表格示例中选择*”;
}
但是,我可以只编写一条SQL语句来提示所有记录吗?如下所示:
(Java)-(JSP示例)
String ShowAll=”“;
如果(=“全部”){
ShowAll=*;
}否则{
ShowAll=;
}
SqlStatement=“从表中选择*示例,其中第一列=ShowAll”;
尝试其中1=1
:
Select * from myTable WHERE 1=1
尝试使用通配符值
“%”
,但我建议在这里使用工厂来创建SQL语句,您尝试执行的操作有点异味。考虑将特殊情况移动到查询本身中,例如
SELECT * FROM table_example WHERE '<%=passVar%>' IN ('ALL', First_Col)
SELECT*FROM table_示例,其中在('ALL',First_Col)中有“”
这也适用于:
WHERE columnname LIKE '%'
除了空值之外。您可以做的另一件事是将代码和SQL组合成一个查询。这意味着IF..ELSE将使用SQL语言 查看这些链接了解更多信息:
最好区别这两种情况,并从中进行两次查询
- 如果没有where条件,则DB不需要对其进行评估(可能更快)
- 源代码/调试输出更清晰
create proc select_all_on_null
@a int
as
begin
select * from Records where (@a is null or Record_id=@a )
end
当您选择成为您的程序时:
make @a in null will select all
如果我是
numder
,则会选择具有此id的行,其中1=1对我有效,尽管使用了where子句,但所有记录都被选中
你也可以试试
SELECT * FROM Customers
WHERE CustomerID=CustomerID; /* query */
或
[任何列名称]=[列名称]
(LHL=左侧。)
复制查询并
您仍然将scriptlet代码放在JSP中吗?数据库调用?糟透了。哈哈,我只是可以在公司里遵守规则。。。真的很抱歉…OP如何在脚本中插入该选项以仅使用一个查询?谢谢,我将尝试它。。。只是为了验证一下,如果我们将列名设置为“%”,它是否会检索以“”开头的数据(空格)?是的,它会这样做。有没有办法也包含空值?是的,目前我正在使用两个查询。。。但是我的一个朋友提到,当程序变得越来越大时,最好找到一种方法进行一次查询,而不是两次或更多次查询,这是可选的。。。谢谢…你知道-这对我来说很有意义,我完全停止了这种想法,只提出了一个问题。几行额外的代码和调试条件查询的噩梦之间的区别是显而易见的。
WHERE columnname LIKE '%'
create proc select_all_on_null
@a int
as
begin
select * from Records where (@a is null or Record_id=@a )
end
make @a in null will select all
SELECT * FROM Customers
WHERE CustomerID=CustomerID; /* query */