MYSQL - 从列中选择一个值或(如果没有给出值)全选[关闭]
Posted
技术标签:
【中文标题】MYSQL - 从列中选择一个值或(如果没有给出值)全选[关闭]【英文标题】:MYSQL - Select one value from column or (if no value is given) select all [closed] 【发布时间】:2018-06-29 05:41:17 【问题描述】:由于缺乏 mysql 语言知识,我无法创建查询来获取所需内容。
我从 *** 和其他地方尝试了几个选项,但没有一个有效。
详细说明...我需要在列中选择一个特定值,但如果没有给出该值,我想全选。
示例(伪代码)
SELECT *
FROM table
WHERE id = 'specificvalue'
IF 'specificvalue' IS NULL, THEN SELECT * FROM table
编辑:不想打破任何规则。我在下面添加了一张表格示例的图片。
我想在 FName 中搜索特定的“jack”,但如果我没有名字,我想全部搜索。
我试图用 IS NULL 创建一个条件,但失败得很惨……
希望有人能再次帮助我!!
Table example
【问题讨论】:
该选定列中的值是否必须为NULL
才能选择其他字段,或者specificvalue
(id) 是否必须为NULL
?
显示您的表架构和一些示例数据,以及示例输出。此外,第二条语句SELECT * FROM column
有列,SQL 需要一个表名。
你为什么不直接使用if/else
或者一个案例?
@Philipp Maurer 我需要搜索值不存在的可能性。
见meta.***.com/questions/333952/…
【参考方案1】:
使用NOT EXISTS
条件。
SELECT *
FROM table
WHERE id = 'specificvalue'
OR NOT EXISTS (
SELECT *
FROM table
WHERE id = 'specificvalue'
)
【讨论】:
太棒了!谢谢巴尔玛。做了一个简单的调整以适应我的代码并对其进行测试并像魅力一样工作。【参考方案2】:假设 ID 是唯一的,关于使用 IFNULL:
SELECT *
FROM table
WHERE id = IFNULL('specificvalue',id)
如果您的值为 null,它会查找 id=id 的所有行,这将始终为 true,id 将始终与自身匹配。
IS NULL 也应该有效:
SELECT *
FROM table
WHERE id = 'specificvalue'
OR 'specificvalue' IS NULL
【讨论】:
以上是关于MYSQL - 从列中选择一个值或(如果没有给出值)全选[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在JavaScript / jQuery中从列中获取所有值而不重复