gpt4 book ai didi

mysql - OR 和 AND 与 mysql 中 where 的区别

转载 作者:行者123 更新时间:2023-11-30 23:56:43 25 4
gpt4 key购买 nike

我正在学习Mysql

但是在下面的例子之后我感到很困惑:

select * from `users` where username = 'admin' or true;

这里它返回了用户表中的所有行!

(username = 'admin' or true ) 应该是 true 吗?所以哪里是真的

但在这个例子中:

select * from `users` where username = 'admin' and true;

它返回一行(其中用户名 = 'admin')

但是 (username = 'admin' and true) 也应该是真的!

那么有什么区别呢?

最佳答案

-- this is always true
WHERE 1

-- this is only true for rows where the username is admin
WHERE username = 'admin'

现在检查这个truth table :

x  y | x and y | x or y
-----------------------
F F | F | F
F T | F | T
T F | F | T
T T | T | T

https://en.wikipedia.org/wiki/Boolean_algebra

如果你采取

  • x 用于 WHERE username = 'admin'
  • y 代表 WHERE 1

你应该明白结果。

关于mysql - OR 和 AND 与 mysql 中 where 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041654/

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