SQL 'WHERE' 从过滤器中检索所有数据

SQL 'WHERE' retrieve all data from a filter

使用此查询:

SELECT * 
FROM table1 
WHERE name = 'Peter'

我可以从 table1 检索 Peter 的所有数据。这可以通过“通配符 *”来完成。

问题

WHERE 部分是否有通配符?例如:

SELECT * 
FROM table1 
WHERE name = *

这个选项当然不起作用,但我正在寻找一个通配符,以便所有名称都将包含在我的查询中。我知道删除 WHERE 语句更容易,但由于某些原因我仍然需要它。

SELECT * 
FROM table1 
WHERE True OR name = 'Peter'
;

这可能看起来很傻,但在生成查询字符串时可以派上用场,例如 PHP/PDO:


$query = "SELECT * FROM names
     WHERE ($ignore_name OR name = :the_name)
     AND ($ignore_address OR address LIKE :the_address)";

,其中 $ignore_xxx 变量是 TrueFalse,并且完全在您的控制之下( 不是 用户输入!)

select * 
from table1 
where name = 'Peter' or name = name;

您可以像这样在 WHERE 子句中查询输出:

SELECT *
FROM table1
WHERE [name] IN (SELECT DISTINCT [name]
                    FROM table1)