[解決済み] LIKEフィルターでアンダースコア文字を使用すると、なぜすべての結果が表示されるのですか?
2022-04-27 06:44:50
質問
以下のようなSQLクエリを書きました。
LIKE
という条件があります。
SELECT * FROM Manager
WHERE managerid LIKE '_%'
AND managername LIKE '%_%'
で
LIKE
アンダースコアがあるかどうかを検索したい
%_%
しかし、私のカラムのデータにはアンダースコア文字がないことが分かっています。
- なぜクエリはテーブルからすべてのレコードを取得するのですか?
サンプルデータです。
create table Manager(
id int
,managerid varchar(3)
,managername varchar(50)
);
insert into Manager(id,managerid,managername)values(1,'A1','Mangesh');
insert into Manager(id,managerid,managername)values(2,'A2','Sagar');
insert into Manager(id,managerid,managername)values(3,'C3','Ahmad');
insert into Manager(id,managerid,managername)values(4,'A4','Mango');
insert into Manager(id,managerid,managername)values(5,'B5','Sandesh');
解決方法は?
を修正します。
WHERE
の条件は、このようになります。
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
これは、Oracleがエスケープ文字をサポートする方法の一つです。ここで、エスケープ文字を定義するには
escape
キーワードを使用します。詳しくは
このリンクはOracle Docsにあります。
.
は
'_'
と
'%'
はワイルドカードで
LIKE
をSQLで操作したものです。
は
_
文字は、(任意の)一文字の存在を探します。もし
columnName LIKE '_abc'
を持つ行の結果が返されます。
'aabc'
,
'xabc'
,
'1abc'
,
'#abc'
ただし
'abc'
,
'abcc'
,
'xabcd'
といった具合です。
は、その
'%'
文字は、0文字以上のマッチングに使用されます。つまり
columnName LIKE '%abc'
を持つ結果が得られます。
'abc'
,
'aabc'
,
'xyzabc'
などがありますが
'xyzabcd'
,
'xabcdd'
で終わらないその他の文字列は
'abc'
.
で検索した場合
'%_%'
. これは、その列の値が1つ以上の文字、つまり任意の文字を持つすべての行を返します。このため、行の中に
_
をカラムの値として使用します。
関連
-
org.postgresql.util.PSQLException: ERROR: リレーション "userinfo" の列 "loginid" が存在しません。
-
[解決済み] クエリを使ったTempテーブルへのデータ挿入
-
[解決済み] データを別のテーブルにコピーする
-
[解決済み] SQLの結合形式 - 入れ子になった内側join
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] SQL Serverには、.NETのMath.Maxのような2つの値を取るMax関数はありますか?
-
[解決済み] T-SQLでテーブル変数をSELECT INTOする
-
[解決済み】カンマで区切られた文字列を個別の行に変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL - ストアドプロシージャ (データ型、関数)
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] SQLiteデータベースで、一度に複数行を挿入することは可能ですか?
-
[解決済み] DISTINCTでCOUNT(*)を選択する
-
[解決済み] SQL/mysql - Select distinct/UNIQUE but return all column?
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する
-
[解決済み] SQL Server アンダースコアのエスケープ