MYSQL - 从列中选择一个值或(如果没有给出值)选择全部

时间:2018-01-19 22:12:55

标签: mysql sql select phpmyadmin conditional-statements

由于缺乏MYSQL语言的知识,我无法创建查询来获取所需内容。

我尝试了stackoverflow和其他地方的几个选项,但都没有。

阐述......我需要在列中选择一个特定值但是如果没有给出该值,我想选择全部。

示例(伪代码)

SELECT * 
FROM table 
WHERE id = 'specificvalue' 
      IF 'specificvalue' IS NULL, THEN SELECT * FROM table
编辑:不要违反任何规则。我在下面添加了一张桌子的图片。

我想在FName中搜索' jack'具体但如果我没有名字我想搜索所有。

我试图用IS NULL制作一个条件,但我失败了......

我希望有人可以再帮助我!!

Table example

2 个答案:

答案 0 :(得分:0)

使用NOT EXISTS条件。

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

答案 1 :(得分:0)

假设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