次のクエリがあります
SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%'
その結果、char+a+\+whatever を含む回答が得られますか?
結果として Pa\pe のようなものは有効ですか?
Ca% または _a% はおそらく有効な答えですか?
\ は SQL クエリ内でどのように正常に動作しますか??
% は、LIKE 句の 0 個以上の文字に一致するワイルドカード文字です。_ は、LIKE 句内の 1 文字だけに一致するワイルドカード文字です。
\ は、エスケープ文字として知られる特殊文字で、直後の文字を文字どおりに解釈する必要があることを示します (一重引用符、ワイルドカード文字などに役立ちます)。
例えば:
SELECT txt1 FROM T1 WHERE txt1 LIKE '_a%'
「xa1」、「xa taco」、「ya anything really」などの txt1 値を持つレコードが選択されます。
ここで、実際にパーセント記号を検索したいとしましょう。これを行うには、% をワイルドカードとして扱わないことを示す特殊文字が必要です。例えば:
SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%'
txt1 値が 'ba%' のレコードを選択します (それ以外は選択しません)。
最後に、通常、LIKE 句にはワイルドカードが含まれます (それ以外の場合は、LIKE の代わりに = を使用できます)。したがって、\%% を含むクエリが表示される場合があります。ここで、最初のパーセント記号は文字通りのパーセント記号として扱われますが、2 番目のパーセント記号はワイルドカードとして解釈されます。例えば:
SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%%'
「da%something else」、「fa% taco」、「ma% bundle of tacos」などの txt1 値を持つレコードが選択されます。
LIKE 句を使用すると、JO で始まる名前など、正確な値がわからない場合にテキストを検索できます。
LIKE 'JO%'
ただし、 で終わるものを検索する場合は、検索対象a%
の一部として % を扱うように SQL に指示する必要があります。あなたの例では、3 文字の文字列を探しています。最初の文字は気にしませんが、a%で終わる必要があります。