지난 글에 이어서 mysql을 쓰게 되었다.
모든 테이블에서 특정 값으로 조건에 맞는 데이터를 찾는 것인데
sql 잘하시는 분들이 쓰신 여러 글을 볼 수 있었지만 따라하기 무서웠다
겉핥기 중인데다가 js로 하고 있어서 좋지 않은 방법인지는 모르겠지만 쉽게 할 수 있길래 공유한다
export const getDbDistribute = async (root, args) => {
try {
// 스키마에서 모든 테이블 이름 배열로 저장하기
const [tables] = await db.query(`
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'sports_db';
`);
let result = [];
// 배열 반복문으로 조건 찾아서 리턴 배열에 저장하기
await Promise.all(tables.map(async (table) => {
const [rows] = await db.query(`
SELECT *
FROM sports_db.${table.TABLE_NAME}
WHERE year = ?
`, [args])
result.push(...rows);
}))
console.log(result)
return result;
} catch (error) {
console.error("쿼리 실행 중 오류:", error);
throw error;
}
};
쿼리 비동기식이랑 args 쿼리 변수로 사용하는 방법이나 좋은 공부가 되었다.
'DATABASE' 카테고리의 다른 글
[mysql] mysql 시작하기 + json 파일 워크벤치로 테이블 추가하기 (0) | 2024.01.14 |
---|