>  Q&A  >  본문

일관성 없는 MySQL 쿼리 결과

<p>특정 결제 시스템에서 이루어진 거래를 보관하는 "거래"라는 테이블이 있습니다. 예를 들어 2023년 7월의 일일 보고서를 받고 싶었고 다음 쿼리를 실행했습니다. </p> <pre class="brush:sql;toolbar:false;">SELECT DAY(생성됨), count(*) FROM `트랜잭션` 상태 = '승인됨' 및 월(생성됨) = 07 및 연도(생성됨) = 2023 일별 그룹(생성됨) </pre> <p>결과가 며칠 건너뛰는 경우가 있습니다. 예를 들어 매월 7일에는 아무것도 얻지 못하지만 검색어를 다음과 같이 변경하면 </p> <pre class="brush:sql;toolbar:false;">SELECT DAY(생성됨), count(*) FROM `트랜잭션` 상태 = '승인됨' 및 월(생성됨) = 07 및 연도(생성됨) = 2023년 및 일(생성됨) = 7 일별 그룹(생성됨); </pre> <p> (기본적으로 쿼리에 <code>DAY(CREATED) = 7</code> 추가)</p> <p>7일째의 개수를 반환합니다.</p> <p>왜 일관성이 없나요? 첫 번째 쿼리에서 이 문제를 어떻게 해결할 수 있습니까? </p> <p>미리 감사드립니다 :)</p> <p>편집: 테이블 구조 및 데이터 예: </p> <pre class="brush:sql;toolbar:false;">CREATE TABLE `트랜잭션`( `ID` int는 NULL이 아닙니다. `PLATFORM_ID` int NULL이 아님, `ENTITY_ID` int NULL이 아님, `RELATED_TRANSACTION_ID` int NULL이 아님 기본값 '0', `ORIGIN_ID` varchar(120) NOT NULL, `BANK` varchar(64) 기본 NULL, `AMOUNT` 이중 NULL이 아님, `CURRENCY` varchar(3) NULL이 아닙니다. `TYPE` varchar(2) 문자 집합 utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, '생성됨' 날짜/시간이 NULL이 아닙니다. `CARD_NO` varchar(20) 기본 NULL, `CARD_BRAND` varchar(45) 기본 NULL, `CARD_EXPIRE_YEAR` int DEFAULT NULL, `CARD_EXPIRE_MONTH` varchar(45) 기본 NULL, `HOLDER_NAME` varchar(256) 문자 세트 utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `이메일` varchar(256) 기본 NULL, `STATUS` enum('승인됨','거부됨','필터링됨','보류 중') 문자 설정 utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `IS_3D`tinyint(1) DEFAULT NULL, `CREATED_AT` 날짜 시간은 NULL이 아닙니다. 기본 CURRENT_TIMESTAMP, `AMOUNTEUR` 이중 DEFAULT NULL, `IS_FRAUD`tinyint(1) NOT NULL DEFAULT '0', `FRAUD_DATE` 날짜 기본값 NULL, `KYC_DATE` 날짜/시간 기본값 NULL ) 엔진=InnoDB 기본 CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; </pre> <p>삽입 예: </p> <pre class="brush:sql;toolbar:false;">INSERT INTO `transaction`(`ID`, `PLATFORM_ID`, `ENTITY_ID`, `RELATED_TRANSACTION_ID`, `ORIGIN_ID`, `BANK`, `AMOUNT` , `CURRENCY`, `TYPE`, `CREATED`, `CARD_NO`, `CARD_BRAND`, `CARD_EXPIRE_YEAR`, `CARD_EXPIRE_MONTH`, `HOLDER_NAME`, `EMAIL`, `STATUS`, `IS_3D`, `CREATED_AT`, ` AMOUNTEUR`, `IS_FRAUD`, `FRAUD_DATE`, `KYC_DATE`) 값 (1, 1, 87, 0, '219114359', 'SOME BANK', 150, 'USD', 'DB', '2022-02-01 00:00:17', '000000XXXXXX0000', 'MasterCard', 2025 , '06', 'NAME FAMILY', 'aaaaaaaaa@gmail.com', '승인됨', 0, '2022-08-25 13:12:58', 150.7605, 0, NULL, NULL); </pre> <p>이 경우에는 관련성이 없다고 생각하기 때문에 색인 정의를 생략했습니다. </p>
P粉514458863P粉514458863403일 전456

모든 응답(1)나는 대답할 것이다

  • P粉476883986

    P粉4768839862023-08-16 00:16:50

    MySQL 콘솔에서 실행한 후 문제를 발견했습니다. 이유는 간단합니다. PhpMyAdmin 시스템은 보기를 25개 행으로만 제한합니다...

    이건 내 실수야! :영형 시간을 내어 지원해주신 모든 분들께 진심으로 감사드립니다!

    회신하다
    0
  • 취소회신하다