Web/Node.js & Nest.js
[Node]Like문 쿼리 조회하기
코딩은 내 밥줄
2024. 9. 15. 18:29
'%' + 검색어 + '%'가 아닌 `%${req.body.query}%`으로 해야된다
const ListSearch_query = `
SELECT
t3.*, CONVERT(@totalCount USING UTF8) as totalCount FROM (
SELECT
t1.*,
t2.username,
CONVERT(t1.image USING UTF8) AS imgsrc,
DENSE_RANK() OVER (ORDER BY t1.score DESC) AS rank
FROM
game_title t1
LEFT JOIN
userTable t2 ON t1.creator = t2.email
WHERE
t1.title LIKE ? OR t1.code LIKE ?
ORDER BY
t1.score DESC
) AS t3,
(SELECT @totalCount := (SELECT COUNT(id) FROM game_title WHERE publicity = 1 AND title like ?)) AS T
LIMIT 3 OFFSET ?;
`;
router.post("/ListSearch", async (req, res) => {
const pageing = (req.body.num - 1) * 3;
const search = `%${req.body.query}%`;
try {
const [results] = await db.promise().query(ListSearch_query, [search, search, search, pageing]);
if (results.length > 0) {
res.send(results);
} else {
res.send({ message: "no data" });
}
} catch (error) {
logErrorToDB(error);
res.status(500).send({ message: "Database query error" });
}
});