MySQL에는 표준 ANSI SQL을 준수하지 않는 일부 동작이 있습니다. 이 경우 MySQL은 정수 0 값을 false,将任何整数非零值视为 true로 처리합니다. 표준 SQL에서 정수는 부울과 동일하지 않지만 MySQL에서는 동일합니다.
쿼리를 실행하면 WHERE id时,它会返回id 0행.
쿼리를 실행하면WHERE name 문자열을 정수로 평가합니다. 즉, 선행 숫자 문자(있는 경우)의 숫자 값을 취하고 이후의 숫자가 아닌 문자는 무시한다는 의미입니다. 선행 숫자가 없으면 문자열의 정수 값은 0입니다.
쿼리WHERE name时,仅当该列中存储的字符串具有非零前导数字时,它才会返回行。在您的示例 'outro'를 실행하면 해당 열에 저장된 문자열의 선행 숫자가 0이 아닌 경우에만 행을 반환합니다. 귀하의 예 'outro'에는 숫자가 아닌 숫자만 있으므로 값은 0이고 조건을 충족할 수 없습니다.
MySQL에는 표준 ANSI SQL을 준수하지 않는 일부 동작이 있습니다. 이 경우 MySQL은 정수 0 값을
false
,将任何整数非零值视为true
로 처리합니다. 표준 SQL에서 정수는 부울과 동일하지 않지만 MySQL에서는 동일합니다.쿼리를 실행하면
WHERE id
时,它会返回id 0
행.쿼리를 실행하면
WHERE name
문자열을 정수로 평가합니다. 즉, 선행 숫자 문자(있는 경우)의 숫자 값을 취하고 이후의 숫자가 아닌 문자는 무시한다는 의미입니다. 선행 숫자가 없으면 문자열의 정수 값은 0입니다.쿼리
WHERE name
时,仅当该列中存储的字符串具有非零前导数字时,它才会返回行。在您的示例'outro'
를 실행하면 해당 열에 저장된 문자열의 선행 숫자가 0이 아닌 경우에만 행을 반환합니다. 귀하의 예'outro'
에는 숫자가 아닌 숫자만 있으므로 값은 0이고 조건을 충족할 수 없습니다.MySQL은 설계된 대로 작동하지만 표준 SQL은 아닙니다.