password_verifyが一致しないとき チェックするべき観点
PHPでログイン機能を作成しているとき、 password_verifyを使ったのですが、 全く一致せず半日ほどハマってしまったので チェックの際見るべき観点について書きます。
SQLで複数のカラムのデータを一つのカラムにまとめる方法
複数のカラムのデータを一つのカラムにまとめる方法を解説します。
複数のカラムのデータをDataGridViewのカラムに移送したいときなんかに
使えると思います。
下記の役割テーブルの値が「1」の場合だけ、カンマで文字列連結します。
下記が実施したSQLです。
```sql
select
concat_ws
(
',',
CASE
WHEN d.duty_pm = 1 THEN 'PM'
ELSE NULL
END
,
CASE
WHEN d.duty_pl = 1 THEN 'PL'
ELSE NULL
END
,
CASE
WHEN d.duty_sl = 1 THEN 'SL'
ELSE NULL
END
)
AS 役割
from t_duty as d
```
このSQLですが、まずCASE文で値が「1」のときは文字列に変換し、「1」以外のときはNULLとします。
そして、変換した文字列をconcat_ws関数で連結します。
concat_ws関数は区切り文字を指定して文字列を連結できます。
さらにNULLの場合は、無視して連結しないので、NULL以外の文字列が連結されます。
下記が出力結果になります。
※concat_ws関数は、MySQL、SQL Server、PostgreSQLで使用可能だそうです。