'mysql 함수 레퍼런스'에 해당되는 글 118건


select 한 결과 값을 다시 insert 해야 한다면 2번의 질의를 처리해주어야 하는데, 이것을 한번에 처리할 수 있는 것을 insert select 라고 합니다.


두 개 테이블의 칼럼이 동일할 경우 처리하는 방법:


 insert into [테이블] select * from [테이블] where [조건]; 

ex.1)

 insert into table1 select * from table2 where id > 3;




칼럼 수가 다를 경우 처리하는 방법:


 insert into [테이블] [칼럼명] select [칼럼명] from [테이블] where [조건];


 insert into table1 (col1, col2, col3) select col1, col2, col3 from table2 where id > 3;



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

!= 연산자는 <> 와 같습니다. 

두 값이 같지 않으면 1를 반환하고, 같으면 0을 반환합니다.

 mysql> SELECT '0.1' <> '0.01';

       -> 1


 mysql> SELECT '0.01' <> '.01';

      -> 0 


&& 연산자는 AND 와 같습니다.

모든 연산수가 0이나 NULL 이 아니면 1를 반환합니다.


 mysql> SELECT 1 && 1;
       -> 1

 mysql> SELECT 1 && 0;
        -> 0

 mysql> SELECT 1 && NULL;
        -> NULL

 mysql> SELECT 0 && NULL;
        -> 0

 mysql> SELECT NULL && 0;
        -> 0


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요


KILL 은 선택적으로 현재 실행되고 있는 구문을 종료시킵니다. 

형식은 다음 표와 같습니다.

 KILL [CONNECTION | QUERY] thread_id


현재 동작하고 있는 thread 를 확인하고 싶다면 SHOW PROCESSLIST 구문을 실행해 주면 됩니다.


SUPER 권한이 있으면 모든 thread 를 죽일 수 있지만 그렇지 않으면 자신이 소유한 thread 와 구문만을 죽일 수 있습니다.


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

데이터베이스 함수는 현재 데이터베이스 이름을 반환합니다.  기본 데이터베이스가 없으면 NULL 을 반환합니다.

 mysql> SELECT DATABASE();
       -> habonyphp


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

COLLATION 함수는 문자열의 collation 을 출력합니다.

 mysql> SELECT COLLATION('habony');

        -> euckr_korean_ci


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

LIKE 는 정규 표현 비교를 이용해 매치하는 문자열이 있으면 1, 아니면 0 을 반환하고, NULL 이면 NULL 를 반환합니다.


 SELEST (str, strlist);


ex.1)

 mysql> SELECT 'Habony!' LIKE 'ha%';
 -> 1


 mysql> SELECT 'Habony!' LIKE 'Habony%';
 -> 1


ex.2)

 mysql> SELECT 'Habony!' LIKE 'Ha_';
 -> 0


 mysql> SELECT 'Habony!' LIKE 'Habony_';
 -> 1



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

FIND_IN_SET() 는 str 이 문자열 목록에 있으면 위치를 N값으로 반환하고, 없으면 0을 반환합니다. ',' 를 기준으로 합니다.


 FIND_IN_SET(str, strlist);


ex.1)

 mysql> FIND_IN_SET('habony'. 'asp,php,habony,cgi');
 -> 3


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요


extractValue() 함수는 XPath 식을 지정하여 XML 문자열에서 추출한 값을 반환합니다.

  • xml_frag 인수 : XML 마크 업
  • xpath_expr 인수: XPath 식으로 지정.

 SELECT ExtractValue(xml_frag,xpath_expr)

ex.1)

 mysql> SELECT ExtractValue( ’’, ’count(/a/b)’);
 -> 1

 mysql> SELECT ExtractValue( ’’, ’count(/a/b)’);

 -> 0


ex.2)

 mysql> SELECT ExtractValue('<a>habony<b>php</b></a>', '/a');

 -> habony


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

DEFAULT_NAME () 함수는 테이블 컬럼에 대한 기본 값을 반환합니다. 열에 디폴트 값이 존재하지 않으면, 오류가 발생합니다.


 SELECT DEFAULT_NAME(col_name)

ex.1)

 mysql> UPDATE table SET uid = DEFAULT(uid)+1 WHERE id < 100;


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

DATABASE() 함수는 UTF8 문자 세트의 문자열로 기본 데이터베이스를 반환합니다. 데이터베이스가 없는 경우 NULL 를 반환합니다.


 SELECT DATABASE();

ex.1)

 mysql> SELECT DATABASE();
 -> habony


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

CONNECTION_ID() 함수는  MySql 연결에 대한 연결 ID 를 반환합니다.


 SELECT CONNECTION_ID()

ex.1)

 mysql> SELECT CONNECTION_ID();
 -> 16485


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

COALESCE() 함수는 주어진 인수에서 첫 번째가 NULL 이 아닌 값을 반환합니다.


 SELECT COALESCE(value)

ex.1)
 mysql> SELECT COALESCE( NULL, 1, 2 );
 -> 1

 mysql> SELECT COALESCE( 2, NULL );
 -> 2

ex.2)

 mysql> SELECT COALESCE( NULL, 'habony' );

 -> habony

 mysql> SELECT COALESCE( NULL, NULL, NULL );

 -> NULL



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

CHAR_LENGTH 함수는 지정된 문자열의 길이를 정수로 반환합니다.


 LENGTH( str )

 CHARACTER_LENGTH( str )

 LENGTH( str )


ex.1)

 mysql> SELECT CHAR_LENGTH( 'Habony' );

 -> 6


ex.2)

 mysql> SELECT CHARACTER_LENGTH( 'Habony' );

 -> 6


ex.3)

 mysql> SELECT LENGTH( 'Habony' );
 -> 6



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

CEIL() 함수는 부동 소수점을 올림해서 반환하는 함수입니다.


 SELECT CEIL( n )

 SELECT CEILING( n )


ex.1)
 mysql> SELECT CEIL(0.5);
 -> 1

ex.2)

 mysql> SELECT CEIL(0.1);

 -> 1


ex.3)

 mysql> SELECT CEILING( -1.2);
 -> -1


ex.4)

 mysql> SELECT CEILING( 1.23);
 -> 2


관련글: 2012/01/09 - [mysql] 소수점 자리를 round 하는 함수



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

CHAR() 함수는 아스키 코드 값에 의해 주어진 문자로 구성되는 문자열을 반환합니다.


 SELECT CHAR ( N )


아스키 코드 값을 참고해서 정수를 구성하면 다음의 결과를 얻게 됩니다.


ex.1)

 mysql> SELECT CHAR(77,121,83,81,’76’);
 -> MySQL


ex.2)

 mysql> SELECT CHAR(72, 65, 66, 79, 78, 89);
 -> HABONY



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

인서트와 업데이트를 수행하기 위해 보통 SELECT, INSERT, UPDATE 를 혼합해서 구성하게 됩니다. 


SELECT 의 결과에 따라 UPDATE 나 INSERT 에 대한 코드를 작성하게 되는데, 문제는 이와 같은 과정으로 코드를 작성할 경우 소스가 길어져서 유지보수가 어려워 질 수 있다는 단점이 있습니다.


이 같은 문제를 해결하기 위해 다음의 코드로 적절히 사용해서 문제를 해결할 수 있겠습니다.


 <?php 
 $id 
1
 $name "habony"
 $key "abncdef"

 mysqli_query('INSERT INTO table_name  
    (id, name, key) VALUES ("'
.$id.'", "'.$name.'", "'.$key.'") 
    ON DUPLICATE KEY UPDATE name="'
.$name.'", key="'.$key.'"' 
 ); 
 ?>


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

N에 일 수를 지정하면 YYYY-MM-DD 로 반환합니다.


 SELECT FROM_DAYS(N);

예 #1)

 mysql> SELECT FROM_DAYS(800000);

    ->2190-04-29


 mysql> SELECT FROM_DAYS(735933);

    -> 2014-12-01


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

논리적 XO 연산자입니다. 주어진 값이 NULL이면 NULL을 반환합니다.


 mysql> SELECT 1 XOR 1;

    -> 0


 mysql> SELECT 1 XOR NULL;

    -> NULL


 mysql> SELECT 1 XOR 1 XOR 1;

    -> 1;


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

SPACE 함수는 N 공간 글자로 구성된 문자열을 반환합니다.


 SELECT SPACE(N);


예제 #1)
 mysql> SELECT SPACE(9);
    -> '         '


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

N 값을 16진수 문자 값으로 변환하여 반환합니다.


 SELECT HEX(N);


예제 #1)

 mysql> SELECT HEX(11);

    -> B


예제 #2)

 mysql> SELECT HEX(123456789);

    -> 75BCD15


예제 #3)

 mysql> SELECT HEX('habony php');

     -> 6861626F6E7920706870


 mysql> SELECT 0x6861626F6E7920706870;

     -> habony php


 mysql> SELECT UNHEX(6861626F6E7920706870);

     -> habony php



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

ELT 함수는 N 값이 1이면 첫 번째 str을, N 값이 3이면 세 번째 str을 반환합니다.


 mysql> SELECT ELT(N, str1, str2, str3, ...);


예제 #1)

 mysql> SELECT ELT(2, 'HA', 'BO', 'NY', 'PHP');

    -> BO


 mysql> SELECT ELT(4, 'HA', 'BO', 'NY', 'PHP');

    -> PHP


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

DUAL 은 주어진 깂의 더하거나 뺀 값을 돌려줍니다.


예제 #1)

 mysql> SELECT 10+1 FROM DUAL;

    -> 11


예제 #2)

 mysql> SELECT 10-1 FROM DUAL;

    -> 9


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

CEILING 함수는 N 에 가장 근접한 정수 값을 반환합니다.


 SELECT CEILING(N);

예제 #1)
 mysql> SELECT CEILING(1.25);
    -> 2

예제 #2)

 mysql> SELECT CEILING(-5.45);

    -> -5


예제 #3)

 mysql> SELECT CEILING(1.6);

    -> 2


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

BIN 함수는 N의 바이너리 값으로 반환합니다. N 이 NULL이면 NULL을 반환합니다.


 SELECT BIN(N);


예제 #1)

 mysql> SELECT BIN(9);

    -> 1001


예제 #2)

 mysql> SELECT BIN(-1);

    -> 111111111111111111111111111111111111111111111111


예제 #3)

mysql> SELECT BIN(21);

    -> 10101



블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

ASIN 함수는 주어진 값에 -1에서 1사이의 범위에 있으면 N의 arc sine 값을 반환하고, 범위에 없으면 NULL을 반환합니다. 주어진 값이 문자열이면 0을 반환합니다.


 SELECT ASIN(N);

예제 #1)

mysql> SELECT ASIN(1);
    -> 1.5707963267948966


예제 #2)
 mysql> SELECT ASIN('habony php');
    -> 0

예제 #3)

 mysql> SELECT ASIN(2);

    -> NULL


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

시간에 대한 시를 반환하는 HOUR 는 0-23 사이의 값을 반환하지만 실제의 값보다 큰 값을 반환합니다.

 HOUR(time)

ex #1)

 mysql> SELECT HOUR('16:02:21');

       -> 16

 

 mysql> SELECT HOUR('216:02:21');

       -> 216

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

USE 는 현재 데이터베이스로써 db_name 데이터베이스를 사용하도록 알려줍니다.

 USE db_name


ex #1)

 USE db1

 SELECT COUNT(*) FROM table_name;

 # selects from db1.table_name

 

 USE db2

 SELECT COUNT(*) FROM table_name;

 # selects from db2.table_name

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

UTF8 문자열로 sql 사용자와 호스트 이름을 반환합니다.

ex #1)

 mysql> SELECT USER();

       -> habony@localhost

 

다음은 계정 및  권리삭제의 예입니다.

 

ex #2)

 mysql> DROP USER habony;

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

이 함수를 사용하려면 파일이 서버에 존재해야하며, 파일의 전체경로를 지정해주어야

합니다. 만약, 파일이 존재하지 않거나 읽혀지지 않는다면 NULL 를 반환합니다.

 LOAD_FILE(field_name)


예제 #1)
 mysql> UPDATE tbname SET field_name = LOAD_FILE('tmp/folder') WHERE id=1;

예제 #2)

 <?php

 $tmpfile = $_FILES['usefile']['tmp_name'];

 if(is_file($tmpfile))

 {

    mysql_query('UPDATE tbname SET field_name = LOAD_FILE(' . $tmpfile .') WHERE id=1');

 }

 ?>

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

pat 패턴에 대한 문자열 expr 패턴 매치를 수행하며, 매치하면 1를, 그렇지 않으면 0을 반환합니다. expr 또는 pat 의 값이 NULL이면 NULL를 반환하고, 바이너리 문자열을 사용할 때에만 대소문자를 구분하게 됩니다.

 expr REGEXP pat

 or

 expr RLIKE pat


예제 #1)

 mysql> SELECT 'a' REGEXP 'A';

       -> 1

 

 mysql> SELECT 'a' REGEXP BINARY 'A';

       -> 0

 

 mysql> SELECT 'A' REGEXP BINARY 'A';

       -> 1


예제 #2)

 mysql> SELECT 'a' REGEXP '^[a-z]';

       -> 1

 

 mysql> SELECT '1' REGEXP '^[a-z]';

       -> 0


예제 #3)

 mysql> SELECT 'a' REGEXP '.*';

       -> 1

 

 mysql> SELECT 'a' REGEXP 'm%y%%';

       -> 0


예제 #4)

 mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';

       -> 1


 ^ 문자열의 시작

 mysql> SELECT 'fo\nfo' REGEXP '^fo$';

                   -> 0
 mysql> SELECT 'fofo' REGEXP '^fo';

                   -> 1

 

 $ 문자열의 끝

 mysql> SELECT 'fo\no' REGEXP '^fo\no$';

                 -> 1
 mysql> SELECT 'fo\no' REGEXP '^fo$';

                 -> 0

 

 * 모든 문자열

 mysql> SELECT 'fofo' REGEXP '^f.*$';

                -> 1
 mysql> SELECT 'fo\r\nfo' REGEXP '^f.*$';

                -> 1

 

 a* 0개 이상의 문자열, a{0,}

 mysql> SELECT 'Ban' REGEXP '^Ba*n';

                   -> 1
 mysql> SELECT 'Baaan' REGEXP '^Ba*n';

                   -> 1
 mysql> SELECT 'Bn' REGEXP '^Ba*n';

                   -> 1

 

 a+ 1개 이상의 문자열, a{1,}

 mysql> SELECT 'Ban' REGEXP '^Ba+n';

                     -> 1
 mysql> SELECT 'Bn' REGEXP '^Ba+n';

                      -> 0

 

 a? 0 또는 1개 포함하는 문자열, a{0,1}

 mysql> SELECT 'Bn' REGEXP '^Ba?n';

                     -> 1
 mysql> SELECT 'Ban' REGEXP '^Ba?n';

                     -> 1
 mysql> SELECT 'Baan' REGEXP '^Ba?n';

                     -> 0

 

 시퀸스 또는 ABC 중 하나와 일치하는 문자열

 mysql> SELECT 'pi' REGEXP 'pi|apa';

                     -> 1
 mysql> SELECT 'axe' REGEXP 'pi|apa';

                    -> 0
 mysql> SELECT 'apa' REGEXP 'pi|apa';

                    -> 1
 mysql> SELECT 'apa' REGEXP '^(pi|apa)$';

                    -> 1
 mysql> SELECT 'pi' REGEXP '^(pi|apa)$';

                    -> 1
 mysql> SELECT 'pix' REGEXP '^(pi|apa)$';

                    -> 0

 

 ABC 인스턴스가 0개 이상 일치하는 문자열

 mysql> SELECT 'pi' REGEXP '^(pi)*$';

                    -> 1
 mysql> SELECT 'pip' REGEXP '^(pi)*$';

                    -> 0
 mysql> SELECT 'pipi' REGEXP '^(pi)*$';

                    -> 1


예제 #5)

 mysql> SELECT 'abcde' REGEXP 'a[bcd]{2}e';

              -> 0
 mysql> SELECT 'abcde' REGEXP 'a[bcd]{3}e';

              -> 1
 mysql> SELECT 'abcde' REGEXP 'a[bcd]{1,10}e';

              -> 1

 mysql> SELECT 'aXbc' REGEXP '[a-dXYZ]';

                 -> 1
 mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]$';

                 -> 0
 mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]+$';

                 -> 1
 mysql> SELECT 'aXbc' REGEXP '^[^a-dXYZ]+$';

                 -> 0
 mysql> SELECT 'gheis' REGEXP '^[^a-dXYZ]+$';

                 -> 1
 mysql> SELECT 'gheisa' REGEXP '^[^a-dXYZ]+$';

                 -> 0

 

좀더 많은 자료가 필요하다면 http://www.regexlib.com/ 에서 구할 수 있습니다.

 

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요