Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[6-2장] MySQL이 내부 연산을 진행해서 ref가 func으로 표시되는 상황 #16

Open
lxxjn0 opened this issue Nov 29, 2020 · 2 comments
Labels
Stuck 해결하지 못한 이슈

Comments

@lxxjn0
Copy link
Member

lxxjn0 commented Nov 29, 2020

p.296 사용자가 명시적으로 값을 변환할 때뿐만 아니라, MySQL 서버가 내부적으로 값을 변환해야 할 때도 ref 칼럼에는 "func"가 출력된다.

질문 :

책에서 예시로 타입이 일치하지 않는 경우에 MySQL이 내부 연산을 진행한다고 하는데 이런 예시를 간략하게나마 보여주면 좋을 것 같어여~

@lxxjn0 lxxjn0 added this to the Real MySQL 6.2.5 - 6.2.14 milestone Nov 29, 2020
@KimSeongGyu1
Copy link
Contributor

KimSeongGyu1 commented Nov 29, 2020

책에 나와있는 서로 다른 타입끼리의 조인과
다른 페이지에 있는 다른 character type끼리의 조인 모두 시도해봤지만
내 나름대로 시도해봤을 때는 계속 ref에 func이 나오지 않음ㅜ
아마 버전이 올라가면서 내부적인 변환은 표시되지 않도록 되지 않았나 추측함

아래는 시도해봤던 기록들의 일부

create table test1(a INT, b VARCHAR(10));
create table test2(a INT, b VARCHAR(10));
create table test3(a INT, b BLOB);
create table test4(a BOOLEAN, b FLOAT);

insert into test1 values (1,1), (2, 2);
insert into test2 values (1,1), (3, 3);
insert into test2 values (1, 'bb');
insert into test1 values (7, 'a');
insert into test3 values (123, '7');
insert into test3 values (123, 'bb');
insert into test4 values (true, 3.14), (false, 2.71);

// 이것저것 많이 해봄ㅜ
explain
select *
from test3 as a
join test4 as b
where a.b > b.a;

create table test5 (_id VARCHAR(10)) default CHARSET=utf8;
create table test6 (_id VARCHAR(12)) default CHARSET=latin1;

insert into test5 values ('asdf');
insert into test6 values ('asdf');

explain
select * from test5 left join test6
on test5._id = test6._id;

@begaonnuri
Copy link
Contributor

흠 나는 날짜 관련 함수가 내부적으로 값을 변경하는 처리라고 생각해서

EXPLAIN
SELECT * FROM employees e, dept_emp de
WHERE e.birth_date=NOW();

실행해 봤는데 얘는 아예 ref에 null이 뜨더라.
image

잘 모르겠네 ㅠ

@begaonnuri begaonnuri added the Stuck 해결하지 못한 이슈 label Nov 30, 2020
@lxxjn0 lxxjn0 removed this from the Real MySQL 6.2.5 - 6.2.14 milestone Jan 31, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Stuck 해결하지 못한 이슈
Projects
None yet
Development

No branches or pull requests

3 participants