我正在运行我们的一些代码,并且遇到了这个结构的sql查询,并且确定它是我们PHP的变量中的一个拼写错误,我运行它并且它有效。
Select column from table where value = column;
我认识的任何人总是被教导正确的语法是:
Select column from table where column = value;
这有什么理由是合法的,除了SQL只是检查是否是一个等式的两个方面? 我更喜欢发布这个,因为我发现它真的很有趣,就像一个“你知道得越多”的东西。
答案 0 :(得分:4)
等于运算符(=
)是对称的 - 如果a=b
为真,那么b=a
也是如此。 a
和b
可以是列名,值或复杂表达式。使用column=value
形式很常见,但从语法上讲,它完全等同于value=column
。
答案 1 :(得分:1)
是的,你有正确的sql只检查方程的两边。该等式甚至可以包含 侧的列!比如
SELECT column from table where 1=2;
答案 2 :(得分:1)
SQL查询的语法是:
SELECT * FROM table WHERE 1
您可以使用任何您想要的条件,例如:
SELECT * FROM table WHERE 0
将返回所有行
,而
{{1}}
不会给你任何回报
在WHERE之后你必须有一个条件,没有别的