gpt4 book ai didi

Python:sqlite OR 语句

转载 作者:太空狗 更新时间:2023-10-29 11:23:36 24 4
gpt4 key购买 nike

是否有 OR sqlite 语句?我一直在尝试用谷歌搜索它,但谷歌似乎过滤掉了OR

例如,如果我想在这个表中找到某人(人)

people:
+--fname--+--lname--+--has_squirrel--+
|Eric |Schmidt |0 |
+---------+---------+----------------+
|Elvis |Presley |1 |
+---------+---------+----------------+
|Richard |Stallman |0 |
+---------+---------+----------------+

我的名字是 Elvis 或 Richard,我的问题是什么?

我尝试过类似select * from people where fname=('Elvis' or 'Richard') 之类的操作,但总是返回 Eric Sc​​hmidt(正好相反我想要的行)!

我也试过 select * from people where fname='Elvis' or 'Richard' 但返回所有表中的行!

我在 Ubuntu 10.10 上使用 Python 2.6 sqlite3 模块。有人可以给我快速解释 sqlite OR 语句或告诉我它是否不存在吗?我试过 RTFM,但找不到任何东西(在 sqlite 网站上搜索 OR 会吐出一堆错误!)。

谢谢!

最佳答案

这将是其中之一:

SELECT * FROM people WHERE fname IN ('Elvis', 'Richard');
SELECT * FROM people WHERE fname = 'Elvis' OR fname = 'Richard';

我很惊讶你的第一个查询竟然有效,而在你的第二个查询中,or 'Richard' 基本上意味着 or 1=1,这对于每个在你的表中排。

您的计算机不像您那样思考。即使 fname = 'Elvis' or 'Richard' 对您来说很明显,RDBMS 也不知道您的意思并读取“if fname 等于 'Elvis' or... true”。它将字符串评估为 bool 值,我假设因为它不为空,所以评估为 true。并继续从您的表格中选择每一行,正如我之前所说。

关于Python:sqlite OR 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221956/

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