나는 다음과 같은 SQL 쿼리가 있습니다 때문에 결과를 얻을하지 않는 번호 앞에하지만 ' 20.1'
또는 ' 20.1'
의 공간으로공간/탭이 변수 앞에 있는지 확인하는 방법은 무엇입니까?
select date, apptemp from weather where apptemp like '%20.1';
+---------------------+---------+
| date | apptemp |
+---------------------+---------+
| 2014-09-24 15:18:43 | 20.1 |
| 2014-09-24 16:23:41 | 20.1 |
| 2014-09-25 14:08:57 | 20.1 |
+---------------------+---------+
을 나는 그것이 될 줄 알았는데 :
select date, apptemp from weather where apptemp = '20.1';
Empty set (0.05 sec)
그때 실행하는 경우를 어느 한 쪽.
20.1 앞에 어떤 캐릭터가 있는지 어떻게 알 수 있습니까?
업데이트 : - :
mysql> SELECT date, apptemp, HEX(apptemp) FROM weather;
응 덕분에 나는 HEX을 시도했습니다?
+---------------------+---------+--------------+
| date | apptemp | HEX(apptemp) |
+---------------------+---------+--------------+
| 2014-09-25 14:19:04 | 21.4 | 15 |
| 2014-09-25 14:24:02 | 21.3 | 15 |
| 2014-09-25 14:28:57 | 20.8 | 15 |
| 2014-09-25 14:34:02 | 21.4 | 15 |
| 2014-09-25 14:38:59 | 21.2 | 15 |
+---------------------+---------+--------------+
업데이트 2 :
는 뭔가 것으로 보인다. - 할 경우
select date, apptemp from weather where apptemp = '20';
정확한 데이터를 반환합니다.
"20.1"- 않습니다.
SELECT HEX(apptemp) FROM weather;
이 16 진수의 열 값을 표시합니다 :
붙여 넣을 때 3 개의 공백이있는 것처럼 보입니다. 그렇다면 Ed Gibbs의 답은 문자열의 시작 부분에서 202020을 제공해야합니다. 문자열은 apptemp에있는 20 개로 혼동되어서는 안됩니다. – GolezTrol
이 예제에서'apptemp'는 * variable *로 보이지 않습니다. 그것은'날씨'테이블에있는 컬럼에 대한 * 식별자 * 인 것처럼 보입니다. (쿼리에서 프로 시저 변수를 사용할 수는 있지만 MySQL 저장 프로그램의 컨텍스트에 있어야하며 여기서는 그렇지 않습니다.) – spencer7593