列 devicetoken を選択し、配列を持つ文字列のようなすべての行を返すようにクエリするデータベースがあります。クエリは、配列内の値ごとにループで発生します。SQL 構文は、私が望むことをしていません。探している文字列の部分文字列を返したくないので、ワイルドカードを使用していません。
SQL 構文は次のとおりです。
$result = $mysqli->query("SELECT devicetoken FROM `department devices` WHERE unit LIKE $unitsarray[$i]");
テスト用の units 配列は次のもので構成されています。
--- Units row 0 = 121
--- Units row 1 = 125
--- Units row 2 = BR171
--- Units row 3 = C1
--- Units row 4 = C120
--- Units row 5 = D2INV
--- Units row 6 = E03
--- Units row 7 = E05
--- Units row 8 = E17
--- Units row 9 = E173
--- Units row 10 = HFPIO
--- Units row 11 = MW70
--- Units row 12 = T05
--- Units row 13 = TIMERW
--- Units row 14 = WT01
--- Units row 15 = WT13
--- Units row 16 = WT17
私のデータベースは次のようになります。
device_id devicetoken unit
T05 ipad 773f5436825a7115417d3d1e036da20e806efeef547b7c3fe4 E17, E03, E05
E05 ipad 773f5436825a7115417d3d1e036da20e806efeef547b7c3fe4 E01, E62, E67
そのため、ループ内のイベントは 3 回呼び出される必要があります。1 回は通過して E17 が見つかったとき、1 回は E03 の場合、1 回は E05 の場合です。では、ループを循環するたびにこれらの文字列を取得するように LIKE を設定するにはどうすればよいでしょうか。