次の文を書こうとしています。
WHERE field LIKE 'Pandora' AND field Not Like 'radio', 'digital', 'internet';
翻訳: フィールドが Pandora のようで、ラジオ、デジタル、またはインターネットのようではない場所を選択します。
AND を挟んで Not Like を 3 回書かずにこのステートメントを書く方法はありますか?
ありがとうございました
次の文を書こうとしています。
WHERE field LIKE 'Pandora' AND field Not Like 'radio', 'digital', 'internet';
翻訳: フィールドが Pandora のようで、ラジオ、デジタル、またはインターネットのようではない場所を選択します。
AND を挟んで Not Like を 3 回書かずにこのステートメントを書く方法はありますか?
ありがとうございました
「フィールド」が単なる単語ではない場合、次のようにする必要があります。
SELECT * FROM table WHERE field LIKE '%Pandora%' AND field NOT LIKE '%radio%' AND field NOT LIKE '%internet%' and field NOT LIKE '%digital%';
まず第一に、クエリは冗長です。field
isの場合、他の条件はデフォルトで false を返します。LIKE
'pandora'
、、、および とfield
等しくなる可能性のある方法はありません。'Pandora'
'radio'
'digital'
'internet'
その結果、次の例を使用してクエリを簡素化できます。
SELECT *
FROM example
WHERE field = 'Pandora';
2 つの条件が 2 つの別個のフィールドを表す場合、REGEXP
演算子を使用してDRY 原則を適用しながら、さらにパターン マッチングを行うことができます。
SELECT *
FROM example
WHERE field_1 = 'Pandora'
AND field_2 NOT REGEXP '^(radio|digital|internet)$';