5

次のクエリがあります

SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%'

その結果、char+a+\+whatever を含む回答が得られますか?

結果として Pa\pe のようなものは有効ですか?

Ca% または _a% はおそらく有効な答えですか?

\ は SQL クエリ内でどのように正常に動作しますか??

4

2 に答える 2

5

% は、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 値を持つレコードが選択されます。

于 2013-03-05T03:07:09.160 に答える
4

LIKE 句を使用すると、JO で始まる名前など、正確な値がわからない場合にテキストを検索できます。

LIKE 'JO%'

ただし、 で終わるものを検索する場合は、検索対象a%の一部として % を扱うように SQL に指示する必要があります。あなたの例では、3 文字の文字列を探しています。最初の文字は気にしませんが、a%で終わる必要があります。

于 2013-03-05T02:03:18.223 に答える