【发布时间】:2014-06-25 17:00:06
【问题描述】:
我在数据库帐户、产品和用户中有三个表。我编写的以下查询执行时间过长。无论如何要优化以下查询?
"SELECT accounts.id AS aucID, accounts.product_id, accounts.end_time, accounts.price, accounts.win_id,
products.id, products.title, products.ratio, users.id , users.username, users.gender, users.email, users.ip
FROM accounts, products, users
WHERE products.id
IN (
SELECT id
FROM products
WHERE accounts.product_id = id
)
AND users.id
IN (
SELECT id
FROM users
WHERE accounts.win_id = id
)
AND accounts.end_time >= '$monday'
AND accounts.end_time < '$sunday'
GROUP BY accounts.end_time"
【问题讨论】:
-
您使用 PHP 通过字符串插值创建 SQL 语句。这是各种各样的错误。改进这一点的第一种方法是将其转换为参数化查询。如果您想进行有意义的更改,请阅读有关 SQL 注入以及有关 mysqli 和查询参数的信息。
标签: mysql