Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以使用;其中;子句来选择SQL语句中的所有记录?_Java_Mysql_Sql_Sql Server - Fatal编程技术网

Java 是否可以使用;其中;子句来选择SQL语句中的所有记录?

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

晚上好,我很好奇是否可以在SQL语句中创建一个WHERE子句来显示所有记录

下面是一些解释:

随机SQL语句(Java)-(JSP示例),正常情况

如果(=“全部”){
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不需要对其进行评估(可能更快)
  • 源代码/调试输出更清晰

在sqlserver上,您可以进行以下操作:

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 */