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
变量是 True
或 False
,并且完全在您的控制之下( 不是 用户输入!)
select *
from table1
where name = 'Peter' or name = name;
您可以像这样在 WHERE 子句中查询输出:
SELECT *
FROM table1
WHERE [name] IN (SELECT DISTINCT [name]
FROM table1)
使用此查询:
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
变量是 True
或 False
,并且完全在您的控制之下( 不是 用户输入!)
select *
from table1
where name = 'Peter' or name = name;
您可以像这样在 WHERE 子句中查询输出:
SELECT *
FROM table1
WHERE [name] IN (SELECT DISTINCT [name]
FROM table1)