완료됨
string or string 질문

uid = 'or'1'#

이렇게 입력하여 모든 컬럼을 출력했습니다. or '1'이 자연수이기 때문에 참이 된 것이라고 생각했습니다. 하지만 '0', 'asdf'와 같은 값을 넣어도 모든 컬럼이 출력되었고 ''를 입력했을때에만 출력되지 않았습니다. 왜 이런 결과가 나온 것인지 궁금합니다...

or 'string'은 null이 아니기만 하면 무조건 참인건가요?

#웹해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
avatar
meu
.HACK 2024 참가자
mysql> select 1 is true;
+-----------+
| 1 is true |
+-----------+
|         1 |
+-----------+
1 row in set (0.00 sec)

mysql> select '' is true;
+------------+
| '' is true |
+------------+
|          0 |
+------------+
1 row in set, 1 warning (0.00 sec)

mysql> select '1' is true;
+-------------+
| '1' is true |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

mysql> select '0' is true;
+-------------+
| '0' is true |
+-------------+
|           0 |
+-------------+
1 row in set (0.00 sec)

특정 언어와 환경에 따라 true로 변환되는 값이 다릅니다.

2020.09.17. 18:23