LIKEでカンマのついた数字を(FINF_IN_SET)

ちょっとてこづってしまったので備忘録。
次のようなカンマ区切りのカラムがあったとき、8は抽出したが88は抽出したくないとき

ROW1: 10,5,2,8,
ROW2: 2,7,9,65
ROW3: 99,100,55,10,88,

SELECT * FROM table where numbers LIKE '%8%';

とやると

ROW1: 10,5,2,8,
ROW3: 99,100,55,10,88,

両方とも抽出されてしまいますよね。

ROW1: 10,5,2,8,

だけ選びたい。でも

ROW3: 99,100,55,10,88,

はいらない。

LIKE

SELECT * FROM table where 
numbers LIKE '8,%' or 
numbers LIKE '%,8,%' or 
numbers LIKE '%,8'

find_in_set

SELECT * FROM table WHERE find_in_set('8',numbers);
  • このエントリーをはてなブックマークに追加

関連記事

no image

外部キー(foreign key)を作成するとインデックスもついてくる

MySQLでは外部キーを設定すると自動的にインデックスが作成されるようです。 逆に外部キーが設定されたままインデックスを削除しようとするとエラーになります。 #1553 - Cannot drop

no image

MySQL WorkbenchでSSH経由でDBに接続

さくらインターネットのデータベースにはクライントマシンから直接TCPで接続を試みると10060エラーなどになってしまいますが、SSH経由で接続は可能のようです。 SSH経由の接続設定 MySQ

no image

SELECT COUNTでNULLだとカウントしてくれない

> SELECT COUNT(column) FROM table; の場合、columnデータがNULLの場合カウントしてくれません。 > SELECT COUNT(*) F

no image

vs SQLite コマンド対応表

SQLiteって今までまじめに触ることがなかったのでおさらいしてみました。 バージョンは、"3.6.20"。コマンドの使用方法は".help"オプションで一覧を表示することができます。 $ s

ユーザ作成と権限設定

MySQLでは、ログイン元のホストごとにユーザ名、パスワードを設定可能です。また、ユーザごとに細かくオペレーションの権限を設定することができます。 ユーザ作成 ユーザ作成は、「ユーザ名」「パス

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑