今日のクエリでは、2 つの異なるテーブルの 2 つの列のいずれかに特定の会社名を持つ行を選択したいと考えていました。みたいにやった
WHERE (N.COMPANY LIKE '%ACME%' OR C.COMPANY LIKE '%ACME%')
まず、実行に 20 分かかりました。列の 1 つだけをフィルター処理した場合、約 10 秒かかったため、これは奇妙でした。第二に、それが終了したとき、それらのレコードのそれらの列のデータベースに値があるという事実を知っているときに、いくつかの行のいくつかの列の値が NULL でした。それで、ここで何が起こっているのですか?SQL が 2 つのテーブルの 2 つの列に対して OR を実行できないのはなぜですか?
(私はUNIONでそれを回避しました-私はそれを実行し、それをC.COMPANY LIKE '%ACME%'
UNIONEDしましたSELECT... WHERE N.COMPANY LIKE '%ACME%'
)