SQLite“”运算符不起作用(SQLite “” operator not working)

编程入门 行业动态 更新时间:2024-10-28 18:30:27
SQLite“<>”运算符不起作用(SQLite “<>” operator not working)

我有这个查询:

SELECT username FROM users INNER JOIN friends WHERE friends.user_a = users.id OR friends.user_b = users.id AND users.username <> 'david';

它返回一行where users.username ='david'。 我怎么能没有这个返回?

'用户'表格结构/样本数据

'朋友'表结构/样本数据

I have this query:

SELECT username FROM users INNER JOIN friends WHERE friends.user_a = users.id OR friends.user_b = users.id AND users.username <> 'david';

It is returning a row where users.username = 'david'. How can I have this not returned?

'users' table structure/sample data

'friends' table structure/sample data

最满意答案

也许尝试NOT LIKE '%david%'的任何非打印字符?

尝试WHERE (friends.user_a = users.id OR friends.user_b = users.id) AND users.username <> 'david';

说明:你的逻辑是friends.user_a = users.id OR friends.user_b = users.id AND users.username <> 'david'你在说:“给我带任何人的朋友用user_a或者等等......”首先应用它并不需要检查其余部分,但在括号后面,我们说:“带给我任何人1.与user_a或users_b是朋友2.他的user_name不是'david'”。

Maybe try NOT LIKE '%david%' for any non-print chars?

try WHERE (friends.user_a = users.id OR friends.user_b = users.id) AND users.username <> 'david';

Explanation: Your logic was friends.user_a = users.id OR friends.user_b = users.id AND users.username <> 'david' You were saying: "bring me anyone who's friend with user_a OR etc..." so when the first applies it doesn't need to check the rest, but after the parentheses, we are saying: "Bring me anyone who 1. Is friends with user_a or users_b 2. His user_name is not 'david'".

更多推荐

本文发布于:2023-08-01 01:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1351470.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:运算符   不起作用   SQLite   operator   working

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!