【问题标题】:MySQL OR operator betwen two non-null resultsMySQL OR 运算符在两个非空结果之间
【发布时间】:2014-06-27 16:19:44
【问题描述】:

如果 or 语句中的两个值都不为 null,会发生什么?

mysql每次都用左边还是有可能mysql用右边?

SELECT * 
FROM posts p 
WHERE parent_id = ? OR id = ?
ORDER BY date 
DESC LIMIT 1

【问题讨论】:

标签: mysql operators or-operator


【解决方案1】:
  1. 如果值为null,则与= 的比较将失败。请改用IS
  2. 您无法确定首先执行哪个条件以及 DB 如何处理过滤。这完全取决于运行时的优化器。

【讨论】:

  • 我创建了一个使用 COALESCE(p.parent_id, p.id) 的查询。如果 paren_id 为 NULL,它将使用主 ID。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多