不返回任何行 - SQL Server

问题描述 投票:0回答:3

有一个条件,如果不满足,那么我只想返回任何行,因为我的应用程序不会选择任何行,并且不会在前端显示任何记录消息。还有其他专业的方法吗?

现在我使用以下查询不返回任何行。

select 0 
where 1 = 0
sql-server t-sql stored-procedures
3个回答
1
投票

即使您没有返回任何行,您仍然返回一个模式。大多数应用程序都希望返回相同的架构,而不管行数有多少。即使返回 0 行。

如果您可以更改正在使用

sp_executesql
执行的@SqlStr中的SQL,我将插入到该查询中的临时表中,然后返回从该临时表中选择的结果:

Select * from #myTempTable where <conditionRequiredForResults>

0
投票

您说过您不想在前端返回任何行,也不返回任何内容。既不是消息也不是行。 您只需要使用 if 语句来避免将任何内容返回到前端

require_once 'db_connection.php';

$sql = "SELECT * FROM table_name WHERE <your filtering Condition>";
$result = mysqli_query($db_connection, $sql);

if (mysqli_num_rows($result) > 0) {
  // If row to be fetched is more than 0
  // Return something Example:
  echo "Rows detected";
} else {
  // If there is no row to be fetched
  // Return nothing
}

如果没有从数据库获取行,这应该不返回任何内容


0
投票
SELECT TOP 0 NULL

这将返回具有一个未命名列且没有行的模式。对于任何您想要故意不返回任何内容的人来说,这是可读的,因为您使用了 TOP 0 和 NULL。没什么。

© www.soinside.com 2019 - 2024. All rights reserved.