gpt4 book ai didi

mysql - WHERE 子句如何工作(交换 LHS 和 RHS)

转载 作者:行者123 更新时间:2023-11-29 02:00:15 27 4
gpt4 key购买 nike

我在 MySQL 中尝试了以下查询,

select first_name from my_contacts WHERE 'Blunt' = last_name;

而且效果很好。

就像,

select first_name from my_contacts WHERE last_name = 'Blunt';

那么 WHERE 子句是如何工作的。我假设当它遇到 WHERE 时,它希望它后面跟着一个列名和 = 的 RHS 以及一个值(在本例中是一个字符串)。

但似乎即使交换 LHS 和 RHS 也可以。它是否类似于 C 或 C++ 中的 if(a == 1)if(1 == a)(RHS 或 LHS 无关紧要)?

注意:如果有链接可以帮助我解决这个问题,请包含它们

最佳答案

就像编译器处理 C 源代码一样,MySQL(或任何数据库)解析 查询文本并使用语法树创建它可以执行的东西,即查询计划。 MySQL 正在逐段弄清楚查询的含义,它使用与任何编程语言一样的语法来尝试弄清楚每个部分是什么。正如 Borniet 所指出的,我们甚至可以在 where 子句中放置常量表达式。我们还可以比较两列是否相等。这是因为 MySQL 允许 WHERE 使用任何表达式,其结果可以强制转换为 bool 值。

关于mysql - WHERE 子句如何工作(交换 LHS 和 RHS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16707481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com