
SELECTする際、特定カラムの特定文字列がある場合に、そのレコードを弾いた結果を取得したいのですが、
どうすれば良いでしょうか?
■前提
・「urlpathカラム」に、「/tokyo/officeedit/261」みたいなパスが1つ入っています
■知りたいこと
・SELECTする際、「urlpathカラム」の中で、指定パスを含むレコードは除く、という条件を付けたいのですが、どうすれば良いでしょうか?
■弾きたいパス例
・「/tokyo/officeedit/★★」
・「/tokyo/houseedit/★★」
・「/site/login」
No.3ベストアンサー
- 回答日時:
likeの方は、それぞれにカラム名も必要ですよ。
(`urlpath` not like '%/officeedit/%') and (`urlpath` not like '%/houseedit/%')
括弧は省略出来るけど、between の and とは違うので。
regexp は正規表現なので、検索が遅くなることが多いようです。like も前方一致でないなら、indexは使われないので、やはり、速くはならない。よって、どっちがいいかはデータ量や複雑なパターンマッチが必要かどうか(likeは単純文字列マッチなので)によるのでは。
No.2
- 回答日時:
前方一致なら `column_name` not like '/tokyo/%'
複数有るなら、どれにもマッチしない条件となるので、否定条件どうしを and で繋ぐ
この回答への補足
回答ありがとうございました。
実は、よく見たら、前部分も動的に変わるパスだったので … 「/◆◆/officeedit/★★」
・「WHERE urlpath NOT REGEXP '/officeedit/|/houseedit/' AND」
としたら目的結果は得られました。
が、折角の機会なので、参考までに教えてください。
「NOT REGEXP」と「not like」は何が異なるのでしょうか?
今回のケースで言えば、こういう書き方もありなのでしょうか?
`urlpath` not like '%/officeedit/%' AND not like '%/houseedit/%'
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- MySQL SQLでカラムを追加し、条件に合致した場合にフラグ(レコード)を付与する方法 2 2022/05/18 23:54
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- Oracle SQL update方法 2 2022/06/22 14:07
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlで50音順にorder byしたい。
-
LIKEの右側にカラムを指定でき...
-
複数キーワードを複数カラムに...
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
type date にnullをinsert
-
MYSQLで全てのカラムから検索す...
-
日付を一括UPDATE
-
INDIRECT関数の代替方法は?
-
【Transact-sql】 where条件、i...
-
ドロップダウンリストの連動し...
-
同一のカラム値をもつもの同士...
-
DBの定義のサイズを大きくし過...
-
数百ページあるPDFをWebで公開...
-
SQL、oracleにて文字列操作(連...
-
MySQLで先頭にカラムを追加
-
SQLServerでNULLを挿入したいです
-
SQLで以下のような構文でコ...
-
UNIONする際、片方テーブルしか...
-
now()かCURRENT_TIMESTAMPか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LIKEの右側にカラムを指定でき...
-
mysqlで50音順にorder byしたい。
-
スペースによる絞り込み検索をS...
-
PL/SQLでの文字列比較
-
SQLステータス:37000について
-
複数カラムに対するLIKE文の最適化
-
whereで全てを検索する方法
-
Accessで文字列の一部を抽出す...
-
End Ifに対応するIfブロックが...
-
SELECT、特定カラムの文字列が...
-
ORDER BY CASEで異なる並替え...
-
複数キーワードを複数カラムに...
-
SQL 複数条件を設定
-
WHERE `年月日` = '晴' OR `年...
-
複数の条件での絞り込み検索の仕方
-
LIKE演算子の%について教えて...
-
LIKEは類似一致検索なのでしょ...
-
mysqlのlike binaryでの前方一致
-
SELECT文で、指定カラム以外の...
-
INDIRECT関数の代替方法は?
おすすめ情報