본문 바로가기

일하딩/Mysql5

[Mysql] 문자열 찾기, 원하는 순서 정렬 - FIND_IN_SET FIND_IN_SET 함숙는 (찾는 문자열, '찾을문자열,찾을문자열,찾을문자열') 형태로 사용한다. 찾을 문자열들은 , 로 구분을 해줘야 해당 위치를 찾아준다. 1. SELECT 안에서 사용하는 경우 SELECT FIND_IN_SET('G20', 'G10,G20,G30'); 위와 같이 사용하고 결과값은 반드시 , 로 찾을 문자열들을 나누어줘야한다. 찾았을경우 위치 값을 반환해준다. , 로 나누지 않았을경우 SELECT FIND_IN_SET('G20', 'G10G20G30'); 찾을 수가 없어 0을 반환하게 된다. 2. ORDER BY 뒤에 사용하는 경우 FIELD 함수와 비슷하게도 사용할 수는 있다. SELECT cd FROM table ORDER BY FIND_IN_SET(cd, 'g10'), FIND.. 2021. 2. 8.
[Mysql] 문자열 찾기, 원하는 순서로 정렬 - FIELD 함수 Field 함수는 FIELD(찾는 문자열, 문자열1, 문자열2, ...) 형태로 사용된다. 1. SELECT 구문에 사용하기 값을 찾은 경우 순서에 맞춰 값을 반환해준다. SELECT FIELD(fieldname, 'G15', 'G30'), fieldname FROM table; 위와 같이 사용할 경우 fieldname 에 G15, G30 이 있을 경우 순서대로 1, 2를 찍어준다. 찾는 값이 없는 경우는 0으로 표시된다. 2. ORDER BY 뒤에 사용하기 FIELD 함수를 ORDER BY 뒤에 사용하면 원하는 값을 우선적으로 정렬할 수 있다. SELECT fieldname FROM table ORDER BY FIELD(fieldname, 'G15', 'G30'), fieldname; 사용하는 방법은 .. 2021. 2. 5.
[Mysql] Select 시 Paging 처리 하기. Limit, Offset 사이트를 만들다보면 무조건 최소 한번은 Paging 을 처리해야하는 화면이 있다. 이때 사용할 수 있는 방법은 Back-End 에서 데이터를 모두 불러와서 원하는 부분만 잘라서 보여주거나 (거의 쓰이지 않음) DB 에서 Select 할 때 원하는 부분만 가져오는 방법이 있다. DB 에서 처리하는 방법이 가장 많이 쓰이고 바람직하다. Oracle 에서는 이걸 rownum 을 사용해서 처리하는데 이 방법은 쌓여있는 데이터가 많아지면 속도가 다소 느려진다. Mysql 에서는 Limit 과 offset 을 제공하여 훨씬 빠르게 원하는 위치에서 원하는 만큼의 데이터를 가져올 수 있다. 쿼리는 아래와 같다. SELECT * FROM dbtable WHERE status = 'Y' ORDER BY CODE LIMIT.. 2020. 11. 11.
[Mysql] Insert 대량으로 하는 방법. (mybatis 에서도) 사이트를 만들면서 Insert 를 대량으로 한번에 처리하는 경우가 종종 발생한다. 이럴 때 단순히 Insert 를 여러번 시도하면 Web 서버와 DB 서버간에 Connection 이 여러번 발생하여 둘중 한 서버가 죽는 일이 종종 발생한다. 이럴때 한번에 대량으로 Insert 하는 방법이 있다. 물론 동일한 테이블에 한해서.... INSERT INTO dbtable( columna, columnb, columnc, columnd )VALUES ('valuea1', 'valueb1', 'valuec1', 'valued1'), ('valuea2', 'valueb2', 'valuec2', 'valued2'), ('valuea3', 'valueb3', 'valuec3', 'valued3'), ('valuea4'.. 2020. 11. 11.
[Mysql] Merge 하는 방법 Merge 란 Key 에 해당하는 데이터가 없으면 Insert. 있으면 Update 하는 기능이다. Mysql 에서는 Merge 구문이 따로 없다. 하지만 다른 방법을 사용해서 Merge 를 할 수 있다. INSERT INTO tablenm( column1, column2, column3, column4 )VALUES( 'value1', 'value2', 'value3', now() ) ON DUPLICATE KEY UPDATE column2 = 'value4', column3 = 'value5', column4 = now() 위와 같이 우선 Insert 를 진행한 후 해당 Key 값이 중복되면 Update 를 하는 것이다. 중요한 것은 Insert 구문에 반드시 Primary Key 필드를 넣어야 한다.. 2020. 7. 11.