我有一个使用 where 子句的查询。有时,这可能会被使用,而在其他时候,我可能想完全省略它以取回所有结果。我当然可以编写两个不同的查询,但出于简单的原因,我想减少我可以编写的任何代码。有没有办法在 mysql 中执行此操作?
进行如下查询:
SELECT * FROM my_table WHERE id = '3'
和:
SELECT * FROM my_table
有没有一种方法可以使用顶级查询并仍然取回所有记录?
最佳答案
不,因为第一个查询中的谓词实际上可能不会从表中检索所有记录;它可能会使用索引,以便它只需获取查询需要返回的特定记录。
如果您想保留相同形式的谓词但仍然返回所有结果,您需要执行如下操作:
where id = 3 or id <> 3
或者这个:
where id = id
请注意,对于其中任何一个,如果 id
可以为 null,则您必须添加 or id is null
。
如果您只想在查询中使用谓词,这就足够了:
where 1
但这只是多余的,您也可以不使用谓词。
关于sql - 有没有办法在 MySQL 的 "where"语句中使用通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634584/