喜欢……而不是……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'
我正在创建一个查询,其中我 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'