본문 바로가기

mysql4

[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] 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.