Mysql where 子句语法

Mysql where clause syntax

我 运行 浏览了我们工作中的一些代码,发现了这个用于 sql 查询的结构,并确定这是我们 PHP 的变量中的拼写错误,我 运行 它并且有效。

Select column from table where value = column;

我认识的任何人总是被教导正确的语法是:

Select column from table where column = value;

这是否合法,除了 SQL 只是检查等式的两边是否相等? 我更多地发布这个是因为我发现它真的很有趣,就像 'the more you know' 之类的东西。

是的,你没看错sql只是检查等式的两边。该等式甚至可以在 边包含一列!比如

SELECT column from table where 1=2;

相等运算符 (=) 是对称的 - 如果 a=b 为真,则 b=a 也为真。 ab 可以是列名、值或复杂表达式。通常使用 column=value 的形式,但从句法上讲,它完全等同于 value=column.

SQL 查询的语法是:

SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy;

您可以使用任何您想要的条件,例如:

SELECT * FROM table WHERE 1

会return你所有的行

SELECT * FROM table WHERE 0

会return你什么都不会

在 WHERE 之后你必须有一个条件,没有别的