sql - 有没有办法在 MySQL 的 "where"语句中使用通配符?

标签 sql mysql

我有一个使用 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/

相关文章:

php - 在 mysql 中存储复选框值

c# - 使用 linq 删除代码时出现错误

sql - 在 Access 2007 中使用条件从查询中删除重复项

mysql - 按日期连接两个表并为空列设置 0 值

mysql - 查找两个 MySQL 表之间的重叠

php - Google 报告了一些实际上并不存在的 404 错误。这是否表明我的网站被黑了?

mysql - 如何成功添加触发器

mysql - 选择时间在指定时间的 -1 到 5 分钟之间的位置

php - 加载 MySQL 查询需要很多时间?如何高效调优数据库

sql - 为什么 age() 的结果在回到过去时并不总是等于间隔?