두개의 테이블 조인하여 업데이트
·
DB/mysql
// 테이블 조인하여 다른 테이블의 값을 업데이트 해주는 쿼리 // table_name1 : 업데이트가 필요한 테이블 // table_name2 : 정보가 있는 테이블 // table_name2의 테이블의 data_column컬럼의 값을 table_name1에 empty_column컬럼 값을 넣는다. // 조건은 compare_column 값이 KO 인것들 UPDATE table_name1 tn1 INNER JOIN table_name2 tn2 ON tn1.key_column = tn2.key_column SET tn1.empty_column = tn2.data_column WHERE tn1.compare_column = 'KO';
mysql특정 컬럼,테이블 찾기
·
DB/mysql
where 조건문만 변경해서 사용 SELECT TABLE_SCHEMA ,COLUMN_NAME, TABLE_NAME, DATA_TYPE, COLUMN_TYPE, COLUMN_DEFAULT, IS_NULLABLE FROM information_schema.COLUMNS WHERE 1=1 AND table_schema='tableSchema' AND TABLE_NAME='tableName' AND COLUMN_NAME LIKE 'columnName';
Error code
·
DB/mysql
mysql 사용 하다 겪은 에러 목록들 [Mysql, MariaDB] [1292] Truncated incorrect DOUBLE value # age 컬럼이 숫자형이 아닌 문자열로 구성된 컬럼일 경우 아래의 쿼리는 동작하지 않습니다. where test.age != 0 # 정상 where test.age != '0'
id를 group by로 중복 제거
·
DB/mysql
SELECT * FROM table WHERE id IN (SELECT MAX(id) AS id FROM table WHERE final=0 AND username='$username' AND active=1 GROUP BY unique_id) ORDER BY order_number
mysql DB대소문자 구분
·
DB/mysql
https://allthatlinux.com/dokuwiki/doku.php?id=mysql_8_%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90_%EA%B5%AC%EB%B6%84%EC%84%A4%EC%A0%95 show variables like 'lower%'; 0이면 구분 1이면 구분없이 사용 1. 리눅스(우분투)에 MySQL 설치 하고 테이블 생성 시 기본으로 대소문자를 구분한다. show variables like 'lower%'; DB 식별자를 클릭합니다. 구성 > 파라미터 그룹의 DB를 클릭합니다. 파라미터에 lower 로 검색을 한 뒤 lower_case_table_names를 체크하고 파라미터 편집을 클릭합니다. 다음과 같이 값에 1을 작성하고 변경 사항 저장을 클릭합니다..
function 추가
·
DB/mysql
Mysql 함수 추가시 DELIMITER $$ CREATE DEFINER=`admin`@`%` FUNCTION `SPLIT_PART`( str VARCHAR(500), del VARCHAR(2), idx INT ) RETURNS varchar(500) CHARSET utf8 BEGIN RETURN SUBSTR(SUBSTRING_INDEX(str, del, idx),LENGTH(SUBSTRING_INDEX(str, del, idx-1))+IF(idx > 1, 2, 1)); END$$ DELIMITER ; 이런 에러가 발생시 Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration..