mysql-从列中选择一个值,或者(如果没有给定值)选择all

gc0ot86w  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(424)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

两年前关门了。
改进这个问题
由于缺乏mysql语言的知识,我无法创建查询来获取所需的内容。
我从stackoverflow和其他地方尝试了几个选项,但都不起作用。
详细说明。。。我需要在列中选择一个特定的值,但是如果没有给定该值,我想选择所有。
示例(伪代码)

SELECT * 
FROM table 
WHERE id = 'specificvalue' 
      IF 'specificvalue' IS NULL, THEN SELECT * FROM table

编辑:不想违反任何规则。我在下面加了一张table的图片。
我想在fname搜索'杰克'在特定的,但如果我没有名字,我想搜索所有然后。
我试图使一个条件为空,但我失败了悲惨的。。。
我希望有人能再次帮助我!!
表格示例

aamkag61

aamkag611#

使用 NOT EXISTS 条件。

SELECT *
FROM table
WHERE id = 'specificvalue'
    OR NOT EXISTS (
        SELECT * 
        FROM table
        WHERE id = 'specificvalue'
        )
m2xkgtsf

m2xkgtsf2#

假设id是唯一的,那么如何使用ifnull:

SELECT * 
FROM table 
WHERE id = IFNULL('specificvalue',id)

如果您的值为null,它将查找id=id的所有行,该值始终为true,id将始终与自身匹配。
如果为空,则也应起作用:

SELECT * 
FROM table 
WHERE id = 'specificvalue' 
OR 'specificvalue' IS NULL

相关问题