Conversation
| if (int.options.getSubcommand() === 'auto-sync') { | ||
| await int.deferReply({ ephemeral: true }); | ||
| DB.query(`UPDATE users SET mode = "${int.options.getString('mode')}" WHERE id = ${int.user.id};`)[0]; | ||
| DB.query(`UPDATE users SET mode = ? WHERE id = ?;`, [int.options.getString('mode'), int.user.id])[0]; |
There was a problem hiding this comment.
Гравис лучше заменять на обычные одинарные кавычки.
И зачем мы в конце имеем [0]?
| ? `SELECT * FROM warns WHERE id = (SELECT MAX(id) FROM warns WHERE target = ${target})` | ||
| ? `SELECT * FROM warns WHERE id = (SELECT MAX(id) FROM warns WHERE target = ?)` | ||
| : `SELECT * FROM warns WHERE id = (SELECT MAX(id) FROM warns)`; | ||
| const data = DB.query(query); | ||
| const data = DB.query(query, target ? [target] : undefined); |
There was a problem hiding this comment.
Это выглядит крайне сомнительно. По сути ты делаешь 2 проверки.
Лучше заменить сразу на что то такое:
const data = target
? DB.query('SELECT * FROM warns WHERE id = (SELECT MAX(id) FROM warns WHERE target = ?)', target)
: DB.query('SELECT * FROM warns WHERE id = (SELECT MAX(id) FROM warns)');И сам запрос выглядит как лютый ужас. По сути, твоя задача - получить последнюю добавленную строку.
В итоге ты делаешь запрос, который содержит второй запрос, который функцией MAX находит максимальное значение и возвращает тебе.
Хотя для твоей цели подойдёт такой запрос:
SELECT * FROM warns WHERE target = ? ORDER BY id DESC LIMIT 1;
SELECT * FROM warns ORDER BY id DESC LIMIT 1;Тут ты сортируешь от максимального айдишника и лимитом забираешь лишь одну строку. Этот запрос будет в тысячи раз менее ресурсоёмким.
| ? `SELECT * FROM warns WHERE NOT flags & 4 AND target = ${target}` | ||
| ? `SELECT * FROM warns WHERE NOT flags & 4 AND target = ?` | ||
| : `SELECT * FROM warns WHERE NOT flags & 4`; | ||
| const data = DB.query(query); | ||
| const data = DB.query(query, target ? [target] : undefined); |
There was a problem hiding this comment.
Та же история с двумя проверками и лишней константой query, которая более не будет использоваться
ruskotwo
left a comment
There was a problem hiding this comment.
Грависы поменять на одиночные кавычки, исправить описанные места
No description provided.