매우 간단하지만 어려움이 있습니다. '팀'이라고 불리는 열이있는 테이블이 있습니다. 행의 일부가 여러 팀으로 구성되어 있으며 한 사람이 쉼표로 구분되어 있으므로 team1, team2
일 수 있습니다. 다른 하나는 team2,team3,team4
일 수 있습니다.csv mysql이있는 열에서 데이터 선택
내가 원하는 것은 SELECT
쿼리를 수행하여 한 사람이 team1
이고 다른 사람이 team1
인 경우 다른 사람이 해당 열에도 불구하고 둘 다 출력하도록합니다.
$sql = "SELECT * FROM respondant_data WHERE respondant_team = 'Central Team'";
$result = $conn->query($sql);
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
echo $row["respondant_firstname"];
echo $row["respondant_lastname"];
echo $row["respondant_team"];
echo '<br>';
}
} else{
echo 'no results';
}
을 그리고 당신은 추측 할 수로서 '중앙 팀'모든 사용자도 자신의 칼럼에서 다른 팀을 가지고 있기 때문에 다시 나에게 아무 것도 반환하지 않습니다 : 여기에
내 쿼리의 근거 모습입니다.
** UPDATE ** 내 쿼리에 대한 업데이트를 만들었 그래서 아래의 제안에 따라
:
$sql = "SELECT * FROM respondant_data WHERE FIND_IN_SET('Central Team', respondant_team) > 0";
은 그래서 일부 데이터 전부는 아니지만을 반환 않으므로 함께 사람들을 반환하는 것 열의 단일 값.
정말 테이블 디자인을 변경해야합니다. 정규화되지 않았습니다. 하나의 열에 여러 개의 값을 저장하지 마십시오 !! –
내가 가진 문제는 클라이언트가 CSV를 통해 데이터를로드했는데 데이터 형식을 변경하려고하지 않아서 심각하게 제한되었습니다. – PhpDude
그런 다음'find_in_set()'을 살펴보십시오 –