我正在尝试编写以下语句:
WHERE field LIKE 'Pandora' AND field Not Like 'radio', 'digital', 'internet';
翻译:选择字段包含“Pandora”但不包含“radio”、“digital”或“internet”的内容。
有没有一种方法在语句中不使用三次“Not Like”和AND连接符的情况下编写它?
谢谢。
我正在尝试编写以下语句:
WHERE field LIKE 'Pandora' AND field Not Like 'radio', 'digital', 'internet';
翻译:选择字段包含“Pandora”但不包含“radio”、“digital”或“internet”的内容。
有没有一种方法在语句中不使用三次“Not Like”和AND连接符的情况下编写它?
谢谢。
SELECT * FROM table WHERE field LIKE '%Pandora%' AND field NOT LIKE '%radio%' AND field NOT LIKE '%internet%' and field NOT LIKE '%digital%';
field
是LIKE
'pandora'
,那么其他条件默认会返回false。
field
不可能等于'Pandora'
、'radio'
、'digital'
和'internet'
。SELECT *
FROM example
WHERE field = 'Pandora';
REGEXP
运算符来强制实施 DRY 原则,同时仍允许进一步的 模式匹配。SELECT *
FROM example
WHERE field_1 = 'Pandora'
AND field_2 NOT REGEXP '^(radio|digital|internet)$';
如果您正在搜索特定的单词,您可以使用NOT IN()
WHERE field LIKE 'Pandora' AND field NOT IN('radio', 'digital', 'internet');
如果您需要在搜索中使用通配符%
,则需要使用多个LIKE
。