MySQL을 사용하여 빈 필드 확인
이메일 주소를 가지고 있는 사용자 중 특정 기준을 가진 사용자를 확인하기 위해 쿼리를 작성했습니다.
당사의 사이트에서는, 유저가 전자 메일 주소를 가지는 것과 가지지 않는 것을 허가합니다.
$aUsers=$this->readToArray('
SELECT `userID`
FROM `users`
WHERE `userID`
IN(SELECT `userID`
FROM `users_indvSettings`
WHERE `indvSettingID`=5 AND `optionID`='.$time.')
AND `email`!=""
');
이것이 SQL에서 빈 필드를 확인하는 가장 좋은 방법입니까?방금 "IS NOT NULL"을 시도했는데 이메일 주소가 없는 사용자 레코드가 반환되었습니다.
위의 쿼리는 작동하지만 궁금해서 제가 제대로 하고 있는지 궁금했습니다.
빈 필드는 빈 문자열 또는 빈 문자열일 수 있습니다.NULL
.
둘 다 처리하려면 다음을 사용합니다.
email > ''
이 기능을 통해range
테이블에 빈 이메일 레코드(둘 다)가 많이 있는 경우 액세스합니다.
네, 당신이 하고 있는 일이 맞아요.이메일 필드가 빈 문자열이 아닌지 확인 중입니다.NULL은 데이터가 없음을 의미합니다.빈 문자열""
는 길이가 0인 공백 문자열입니다.
null 체크도 추가할 수 있습니다.
AND (email != "" OR email IS NOT NULL)
사용할 수 있습니다.
IFNULL(email, '') > ''
빈 문자열(이메일 != "")과 NULL 사이에는 차이가 있습니다. NULL은 NULL이고 빈 문자열은 다른 문자열입니다.
이렇게 하면 작동하지만 여전히 null 레코드가 반환될 수 있습니다.레코드를 삽입할 때 이메일주소를 길이0 의 문자열로 설정하는 경우도 있습니다만, 시스템에 NULL 전자 메일주소가 침입하는 경우는 어떻게든 처리할 필요가 있습니다.
$aUsers=$this->readToArray('
SELECT `userID`
FROM `users`
WHERE `userID`
IN(SELECT `userID`
FROM `users_indvSettings`
WHERE `indvSettingID`=5 AND `optionID`='.$time.')
AND `email` != "" AND `email` IS NOT NULL
');
NULL이 아닌 빈 레코드 또는 공백 수가 있는 레코드를 모두 검색하려면 다음 절차를 수행합니다.
LIKE '%\ '
백슬래시 뒤에 공간이 있는지 확인합니다.자세한 내용은 이쪽:http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
이 코드에 문제가 없는지 확인합니다.
$sql = "SELECT * FROM tablename WHERE condition";
$res = mysql_query($sql);
while ($row = mysql_fetch_assoc($res)) {
foreach($row as $key => $field) {
echo "<br>";
if(empty($row[$key])){
echo $key." : empty field :"."<br>";
}else{
echo $key." =" . $field."<br>";
}
}
}
언급URL : https://stackoverflow.com/questions/2327029/checking-for-an-empty-field-with-mysql
'programing' 카테고리의 다른 글
Laravel Controller에서 콘솔에 쓰는 방법 (0) | 2022.09.11 |
---|---|
어떻게 자바에 있는 기간" 예쁜 인쇄" 수 있을까요? (0) | 2022.09.11 |
jQuery를 사용하여 현재 URL을 가져오시겠습니까? (0) | 2022.09.11 |
다른 테이블에서 동일한 ID의 SQL 쿼리 수 행 (0) | 2022.09.11 |
MariaDB에서 자동 완료를 활성화하려면 어떻게 해야 합니까? (0) | 2022.09.11 |