我正在创建一个查询,其中我从多个表中选择数据,但是,我不想选择我的用户当前正在查看的条目。我已经使用AND NOT语法在其他查询中完成了这个但是当与LIKE结合使用时,我仍然返回我不寻找的行?
运行时语法没有错误但仍然不正确。这是我的询问。
SELECT id AS num, mix_title AS title, table_type AS type, header, post_date, counter
FROM mixes
WHERE keywords LIKE ('%#workout%')
OR keywords LIKE ('%#drunk_fairy%')
AND NOT id='1'
我希望上面的代码返回所有LIKE行,但不是id等于1的地方。
如果已经有人问过道歉,我不太确定如何提出这个问题,谢谢。
答案 0 :(得分:5)
您必须使用括号,因为AND
优先于OR
:
SELECT id AS num, mix_title AS title, table_type AS type,
header, post_date, counter
FROM mixes
WHERE (keywords LIKE ('%#workout%') OR keywords LIKE('%#drunk_fairy%'))
AND NOT id='1'