Remove usages of FIND_IN_SET
FIND_IN_SET doesn't make use of indexes
This commit is contained in:
@ -153,12 +153,12 @@ impl ComponentDataModel {
|
||||
ComponentDataModel::DelSelector(selector) => {
|
||||
if let ComponentInteractionDataKind::StringSelect { values } = &component.data.kind
|
||||
{
|
||||
let placeholder = values.iter().map(|_| "?").collect::<Vec<&str>>().join(",");
|
||||
let placeholder = vec!["?"; values.len()].join(",");
|
||||
let sql = format!(
|
||||
"UPDATE reminders SET `status` = 'deleted' WHERE id IN ({placeholder})"
|
||||
);
|
||||
let mut query = sqlx::query(&sql);
|
||||
|
||||
let mut query = sqlx::query(&sql);
|
||||
for id in values {
|
||||
query = query.bind(id);
|
||||
}
|
||||
@ -269,17 +269,15 @@ impl ComponentDataModel {
|
||||
if let ComponentInteractionDataKind::StringSelect { values } =
|
||||
&component.data.kind
|
||||
{
|
||||
let selected_id = values.join(",");
|
||||
let placeholder = vec!["?"; values.len()].join(",");
|
||||
let sql = format!("DELETE FROM todos WHERE id IN ({placeholder})");
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
DELETE FROM todos WHERE FIND_IN_SET(id, ?)
|
||||
",
|
||||
selected_id
|
||||
)
|
||||
.execute(&data.database)
|
||||
.await
|
||||
.unwrap();
|
||||
let mut query = sqlx::query(&sql);
|
||||
for id in values {
|
||||
query = query.bind(id);
|
||||
}
|
||||
|
||||
query.execute(&data.database).await.unwrap();
|
||||
|
||||
let values = if let Some(uid) = selector.user_id {
|
||||
sqlx::query!(
|
||||
|
Reference in New Issue
Block a user