본문 바로가기

mysql3

[MySQL][MariaDB] LPAD, RPAD 함수가 뭐야? 그룹 테이블에서 GROUP_ID가 PK에 해당한다. 이 GROUP_ID의 포맷이 GR00X (GR + 숫자3자리) 이렇게 정해져있다. 그룹 등록 시 다음 GROUP_ID를 쿼리해서 조회한 후 이를 그룹 정보와 같이 INSERT 한다. 다음 GRUOP_ID를 조회하는 쿼리를 한 번 보자. SELECT CONCAT('GR', LPAD(CAST(IFNULL(MAX(SUBSTR(GROUP_ID, 3)), 0) AS UNSIGNED) + 1, 3, 0)) group_idFROM GROUP_INFOWHERE GROUP_ID LIKE CONCAT( 'GR', '%') 쿼리를 괄호 제일 안쪽부터 보자. SUBSTR(GROUP_ID, 3) SUBSTR은 문자열 컬럼에서 원하는 길이로 문자열을 추출하는 함수이다... 2025. 7. 1.
[MySQL] UPDATE 문에서 다른 테이블의 값을 활용하는 방법 MySQL에서 데이터를 업데이트할 때, 특정 조건에 맞는 값을 다른 테이블에서 가져와 변경해야 하는 경우가 있습니다. 예를 들어, Table_A의 column1 값을 Table_B의 column2 값으로 업데이트해야 할 수도 있습니다. 이 글에서는 MySQL에서 UPDATE 문을 사용하여 다른 테이블의 데이터를 가져와 업데이트하는 다양한 방법을 소개하겠습니다. 1. 기본적인 UPDATE ... SET (SELECT ...) 문법MySQL에서는 UPDATE 문 내에서 SELECT 문을 활용하여 값을 변경할 수 있습니다.서브쿼리를 사용한 UPDATE(보통 일반적인 방법)UPDATE Orders oSET customer_name = ( SELECT c.name FROM Customers c W.. 2025. 3. 31.
[Mysql] SELECT 결과를 UPDATE문에 반영하기 가끔, select 결과인 값을 바로 set update 할 때가 있다.현재 카테고리 사이드바를 db화 하여 보다 유동적인 세팅이 가능하도록 설계 중이다.여기에 카테고리마다의 순서 또한 db column으로 세팅하여 order by를 통해 순서 또한 설정할 수 있도록 설계 중이다.여기서 카테고리를 새로 등록을 할 때, 배치 순서(listOrder) 어떻게 insert 해야 할까 고민하고 있었다.내 생각으론 처음 등록 시엔 마지막 순서로 설정하고, 순서 수정 시에 그때 update 하는 걸로 생각했다.그러면 처음 등록을 할 때 listOrder를 마지막 순서의 값으로 어떻게 설정할 수 있을까.현재 category table의 column은 idx, name, pid, listOrder, icon 이렇게 구.. 2024. 3. 26.