喜欢……而不是……sql

LIKE... AND NOT... sql

我正在创建一个查询,其中我 select 从多个表中获取数据,但是,我不想 select 我的用户当前正在查看的条目。我已经使用 AND NOT 语法在其他查询中完成了此操作,但是当将其与 LIKE 结合使用时,我仍然 return 我不在寻找的行?

我运行时的语法没有错误,但仍然不正确。这是我的查询。

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'

我希望上面的代码 return 所有 LIKE 行,但不是 ID 等于 1 的行。

抱歉,如果有人问过这个问题,我不太确定如何提出这个问题,谢谢。

你必须使用括号,因为 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'