본문 바로가기

개발/MySQL(SQL)4

MySQL의 문자열 연결 함수 CONCAT 사용시 구분자 넣기!! (Group_concat 포함) 문자열을 연결할 때 사용하는 MySQL 함수의 이름이 바로 'CONCAT'입니다. 이 함수를 이용하면 문자열을 그냥 쭉~ 이어줍니다. mysql> SELECT CONCAT('My', 'S', 'QL'); -> 'MySQL' 출처: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html 그런데 그 데이터가 구분되어야 할 때는? 구분자를 넣어주어야겠죠? 그 때 사용할 수 있는 함수가 바로 'CONCAT_WS'(Concatenate With Separator)입니다. mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name'); -> 'First name,Second name,Last Name' .. 2011. 11. 30.
MySQL 패스워드가 phpMyAdmin에서 왜 길게 보일까요??? MySQL 5.0 이상부터는 PASSWORD() 함수를 이용하면 41자리의 해시된 코드가 나옵니다. 이렇게요~ '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29' 이 결과값은 sha1 으로 해쉬를 2중으로 한 값 앞에 '*'을 붙인거(댓글 참고)라고 합니다~ 여튼! 이렇게 값이 나오는데, phpMyAdmin에서 같은 쿼리를 보내면 엄청 길게 나오더군요~ 이렇게요~ 물론 PHP나 다른 프로그램으로 불러올 때 이상작동 하지는 않습니다만... 그냥 값을 비교하려고 phpMyAdmin을 사용할 때 이렇게 나와버리니 한번에 확인이 힘들더군요~ 확인해 보니 ASCII 코드값(16진수)를 표시한 것이더군요~ 그래서 위의 값을 그냥 'CHAR'로 캐스팅 하기만 했는데 잘 보이네요~ ㅎ 이렇게.. 2011. 8. 24.
[MySQL] TEXT field 크기 게시물을 길게 써야 할 일이 생겼습니다. 표로된 HTML문서를 긁어서 그대로 에디터에 붙여넣고 입력했더니~ 짤리네요.. 음~ 길면 그럴수도 있지~ 하다가 갑자기 궁금해졌습니다. 왜 짤리지? 그래서 테스트에 들어갔습니다. 테스트에 사용한 글은... 긴 텍스트... 긴 텍스트..... 성경으로 하기로 했습니다. 시편 119편! 처음에는 POST 방식의 데이터 전송에 제한이 있나를 알아봤는데, 서버사이드 스크립트 쪽에서 받는 데이터가 정상적으로 뜨더군요~ 어? 그럼 DB의 문제인가? DB에 입력된 데이타가 정상적으로 저장되어 있지 않다면!! php에서 MySQL로 자료를 보내는 중에 짤리는 것일 거야... 란 가정을 세우고~ SELECT RIGHT(content, 400) FROM `table_name` WH.. 2010. 12. 2.
[SQL] UNION과 UNION ALL... 속도 UNION에 대해서는 다들 아시리라 생각됩니다. 테이블을 합쳐주는거죠~ UNION ALL도 같은 기능을 합니다~ 차이가 있다면! 중복된 튜플을 허용하느냐(UNION ALL) 하지 않느냐(UNION)의 차이겠습니다. 둘의 속도 차이가 궁금했습니다. 그래서 제가 관리중인 사이트의 모든 게시판을 다 합쳐 봤습니다. 조금 미련한?? ㅋ MySQL을 쓰고 있으며, 게시판의 튜플 수는... 17만건 정도 됩니다.. 아래는 UNION ALL 과 UNION으로 튜플을 합쳐본 결과구요... 단위는 초단위 입니다... 각각 네번씩 테스트 했습니다. UNION ALL 1.6100 1.8022 2.0818 1.6087 UNION 4.9800 3.8190 3.6433 3.6332 와우... 속도 차이가 장난이 아닙니다 -_-;.. 2010. 3. 26.