おそらくPDOによって、結果をループすることなく、特定のデータが見つかった列名を取得することは可能ですか?または、mySQLでこれを行う別の方法はありますか?
この例では3列しか表示されていませんが、私のテーブルでは最大30列をチェックする必要がある場合があります
テーブルtable1があり、「x」が見つかった列を検索したい場合
+----+------+------+------+
| id | Col1 | Col2 | Col3 |
+----+------+------+------+
| 0 | x | b | x |
| 1 | x | x | f |
| 2 | d | x | g |
| 3 | h | j | k |
+----+------+------+------+
currentyl iは、Select thenループを実行して各行に移動し、データが「x」であるかどうかを各行の列で確認します。
$query= "SELECT * FROM table1 WHERE (Col1='x' OR Col2='x' OR Col3='x')"
$result=mysql_query($query);
$foundCols = array();
$rowCnt = 0;
while ($row = mysql_fetch_assoc($result)) {
$tmpArr = array();
if ($row['Col1'] == 'x') {
$tmpArr[] = 'Col1';
}
if ($row['Col2'] == 'x') {
$tmpArr[] = 'Col2';
}
if ($row['Col3'] == 'x') {
$tmpArr[] = 'Col3';
}
$foundCols[$rowCnt] = $tmpArr;
$rowCnt = $rowCnt+1
}
ありがとうございました