我试图了解以下语句将如何在多条记录上执行。
SELECT * FROM test
WHERE product='$product'
AND (summary LIKE '%$keywords%' OR exp LIKE '%$keywords%')
ORDER BY `$order_by` DESC;
我是 SQL 的新手,所以这是我想知道的:
1. 当您执行 SQL 查询时,我相信它会查看表中的每一行。当找到匹配项时,它将结果暂时存储在哪里,直到可以返回所有结果?
2. 在上面的示例中,假设我们正在查看表中的单行并且有一个匹配summary
。查询是否会在已经找到匹配项时继续执行 OR exp LIKE '%$keywords%'
?
最佳答案
由数据库引擎决定如何存储临时结果。每个数据库引擎实现可能不同。客户端得到的是一个由行组成的结果集(如果查询产生结果的话)
不,如果 OR 中的第一个条件的计算结果为真,它不会检查第二个条件(无论如何这样做有什么意义,您已经知道最终结果)
关于mysql - SQL 语句是否会在 OR 语句中的第一个匹配项停止执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15489801/