SELECT 쿼리 빈 결과에 대한 단순 확인
선택 쿼리가 빈 결과 세트를 반환하는지 확인하는 방법을 지적할 수 있습니까?
예를 들어 다음 쿼리가 있습니다.
SELECT * FROM service s WHERE s.service_id = ?;
다음과 같은 작업을 수행해야 합니다.
ISNULL(SELECT * FROM service s WHERE s.service_id = ?)
결과 세트가 비어 있지 않은지 테스트하려면?
IF EXISTS(SELECT * FROM service s WHERE s.service_id = ?)
BEGIN
--DO STUFF HERE
END
@@ROWCOUNT 사용:
SELECT * FROM service s WHERE s.service_id = ?;
IF @@ROWCOUNT > 0
-- do stuff here.....
SQL Server Books Online에 따르면:
마지막 문의 영향을 받는 행 수를 반환합니다.행 수가 20억을 초과할 경우 ROWCOUNT_BIG를 사용합니다.
Ed B의 의견에 동의해요.EXISTS 메서드를 사용해야 하지만 보다 효율적인 방법은 다음과 같습니다.
IF EXISTS(SELECT 1 FROM service s WHERE s.service_id = ?)
BEGIN
--DO STUFF HERE
END
HTH
여러 가지 방법으로 할 수 있습니다.
IF EXISTS(select * from ....)
begin
-- select * from ....
end
else
-- do something
또는 를 사용할 수 있습니다.IF NOT EXISTS , @@ROW_COUNT
맘에 들다
select * from ....
IF(@@ROW_COUNT>0)
begin
-- do something
end
시험:
SELECT * FROM service s WHERE s.service_id = ?;
IF @@ROWCOUNT=0
BEGIN
PRINT 'no rows!'
END
SELECT COUNT(1) FROM service s WHERE s.service_id = ?
아래 투고를 요약하면 다음과 같습니다.
DB에 일치하는 행이 하나 이상 있는지 여부만 신경 쓴다면exists
가장 효율적인 체크 방법이기 때문에 일치하는 행을 하나 이상 발견하면 true가 반환됩니다.count
, etc는 일치하는 행을 모두 검색합니다.
실제로 데이터를 처리에 사용해야 하는 경우 또는 쿼리에 부작용이 있는 경우 또는 실제 총 행 수를 알아야 하는 경우ROWCOUNT
또는count
가장 좋은 방법이라고 생각합니다.
SELECT * FROM service s WHERE s.service_id = ?;
IF @@rowcount = 0
begin
select 'no data'
end
SELECT count(*) as count FROM service s WHERE s.service_id = ?;
카운트 == 0 인지를 테스트합니다.
좀 더 바로크하게:
(SELECT count)가 FROM 서비스의 WHERE s.service_id = ?) = 0일 때 대소문자를 선택하고, '행 없음, 브로!'를 선택하지 않으면 'You got data!'가 studp_message로 끝납니다.
내 sql에서 정보 사용
select FOUND_ROWS();
select 쿼리에 의해 반환된 행의 수를 반환합니다.
SELECT count(*) as CountThis ....
그런 다음 다음과 같이 문자열과 비교할 수 있습니다.
IF CHECKROW_RS("CountThis")="0" THEN ...
CHECKROW_RS
오브젝트
조금 더 효과적인 코드를 만들 수 있는 방법이 있습니다.
$sql = "SELECT * FROM messages"; //your query
$result=$connvar->query($sql); //$connvar is the connection variable
$flag=0;
while($rows2=mysqli_fetch_assoc($result2))
{ $flag++;}
if($flag==0){no rows selected;}
else{
echo $flag." "."rows are selected"
}
언급URL : https://stackoverflow.com/questions/2884996/simple-check-for-select-query-empty-result
'sourcecode' 카테고리의 다른 글
WPF 그리드의 하단 테두리 (0) | 2023.04.14 |
---|---|
XAML 그리드에서 RowDefinition Height="10*"는 무엇을 의미합니까? (0) | 2023.04.09 |
목표 C에서 상수를 생성하는 가장 좋은 방법은 무엇입니까? (0) | 2023.04.09 |
리스트 이해 python의 루프를 위해 2를 프레임하는 방법 (0) | 2023.04.09 |
Windows PowerShell에서 표준 입력/출력 리다이렉트 (0) | 2023.04.09 |