首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL WHERE is anything

SQL WHERE is anything
EN

Stack Overflow用户
提问于 2015-04-27 10:35:40
回答 3查看 1.6K关注 0票数 0

我正在通过搜索栏进行数据库查询,有时希望它能产生所有结果(取决于输入的内容)。

我知道对于SELECT,您可以使用*来选择所有列。是否存在类似的SQL语法:即WHERE name IS *本质上始终为真?

编辑以澄清:

这个子句的本质是使用一个变量来设置名称(我已经说得很清楚了,实际上我不能修改这个子句)。例如WHERE name IS [[inputName]] (inputName是由搜索栏决定的)

EN

回答 3

Stack Overflow用户

发布于 2015-04-27 10:39:55

代码语言:javascript
复制
WHERE ISNULL(name, '') = ISNULL(name, '')

(假设'name‘是字符串类型)

只需使列引用自身即可。然而,如果这是您查询的唯一目标,为什么您反对省略WHERE子句呢?

票数 1
EN

Stack Overflow用户

发布于 2015-04-27 10:44:15

如果您想在一条SQL语句中返回所有结果,只需省略WHERE子句:

代码语言:javascript
复制
SELECT <* or field names> FROM <table>;

只有当您想要过滤特定字段上的数据时,才应该使用WHERE。在您的情况下,您根本不想进行过滤。

票数 0
EN

Stack Overflow用户

发布于 2015-04-27 10:55:11

实际上,在这种情况下根本不需要WHERE子句。但是如果你坚持,那么你应该写你的谓词,这样它总是返回true。这可以通过多种方式完成:

任何谓词,如:

代码语言:javascript
复制
WHERE 1=1

包含列:

代码语言:javascript
复制
WHERE name = name OR name is null

使用LIKE

代码语言:javascript
复制
WHERE name LIKE '%' OR name is null

带参数的:

代码语言:javascript
复制
WHERE name = @name OR @name is null

当然,您还可以考虑更多。但我觉得你需要最后一个。如果您想要所有行,请从应用层传递NULL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29886290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档