3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[MySQL]GROUP BYを使ったレコードで値が特定の文字列を含むどうかを確認する

Last updated at Posted at 2023-03-30

やりたいこと

表題の通りですが、MySQLでGROUP BYを使ったレコードの中に値が特定の文字列を含むどうかを知りたいケースがあったので考えてみました。

方法

以下のようにMAX関数とCASE式を使います。
CASE式では特定の文字列(ここではstring)があれば1をなければ0を返します。
MAX関数では値の最大値を返すので、集計されるレコードの中にcolumn2の値がstringとなるレコードがあれば1。なければ0が返されることになります。
あとはWHERE等を使えば簡単に絞り込むことが可能です。

SELECT
  column1,
  MAX(CASE WHEN column2 = 'string' THEN 1 ELSE 0 END) AS has_string
FROM
  table_name
GROUP BY
  column1;
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?