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);
関連記事
-
MySQL WorkbenchでSSH経由でDBに接続
さくらインターネットのデータベースにはクライントマシンから直接TCPで接続を試みると10060エラーなどになってしまいますが、SSH経由で接続は可能のようです。 SSH経由の接続設定 MySQ
-
ユーザ作成と権限設定
MySQLでは、ログイン元のホストごとにユーザ名、パスワードを設定可能です。また、ユーザごとに細かくオペレーションの権限を設定することができます。 ユーザ作成 ユーザ作成は、「ユーザ名」「パス
-
vs SQLite コマンド対応表
SQLiteって今までまじめに触ることがなかったのでおさらいしてみました。 バージョンは、"3.6.20"。コマンドの使用方法は".help"オプションで一覧を表示することができます。 $ s
-
外部キー(foreign key)を作成するとインデックスもついてくる
MySQLでは外部キーを設定すると自動的にインデックスが作成されるようです。 逆に外部キーが設定されたままインデックスを削除しようとするとエラーになります。 #1553 - Cannot drop
-
SELECT COUNTでNULLだとカウントしてくれない
> SELECT COUNT(column) FROM table; の場合、columnデータがNULLの場合カウントしてくれません。 > SELECT COUNT(*) F