SQLite"<>"操作员不工作

时间:2018-03-23 05:12:17

标签: sqlite

我有这个问题:

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

它返回了users.username =&#39; david&#39;的行。我怎么能没有这个?

&#39;用户&#39;表结构/样本数据 enter image description here

&#39;朋友&#39;表结构/样本数据 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

对于任何非打印字符,可能会尝试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' 你说的是:&#34;带给我任何与user_a等有关的朋友......&#34; 因此,当第一个应用时,它不需要检查其余部分,但在括号后,我们说:&#34;带给我任何人1.是user_a或users_b的朋友2.他的user_name不是&# 39;大卫&#39;&#34;