0

これが私のクエリです:

SELECT * 
FROM client_info
WHERE (cid LIKE 'G%' OR cid LIKE 'H%' OR cid LIKE 'J%')
AND (client_name NOT LIKE 'P4%' OR client_name NOT LIKE 'P5%')

結果には、P4 と P5 で始まるクライアント名が含まれています。NOT LIKE 句の何が問題になっていますか?

4

4 に答える 4

1

他の人があなたに正しい答えを与えました - OR の代わりに AND を使う必要があります。しかし、その理由を理解する価値があります。たとえば、P5_JONES というクライアントの場合、なぜこの患者がリストに表示されるのでしょうか? その名前は「P4%」のようではないためです。はい、P5% のようなものですが、そこに OR がある場合、条件を満たすにはこれらの式の 1 つだけが真である必要があります。

于 2013-10-04T15:28:44.180 に答える
0

これを試して:

選択する *
FROM client_info
WHERE (cid LIKE 'G%' OR cid LIKE 'H%' OR cid LIKE 'J%')
AND (client_name NOT LIKE 'P4%' AND client_name NOT LIKE 'P5%')

OR 演算子ではなく AND を使用する必要があります。NOT LIKE so を使用しているため、いずれかの条件をチェックする必要があります。

于 2013-10-04T15:25:03.680 に答える
0

NOT LIKE 条件では OR の代わりに AND を使用する必要があります

于 2013-10-04T15:23:39.517 に答える