gpt4 book ai didi

具有所有列的mysql查询加上对某一列的计数

转载 作者:行者123 更新时间:2023-11-29 07:09:31 38 4
gpt4 key购买 nike

试图弄清楚我是否可以减少我的 mysql 查询以减少与数据库的连接量。他们是不是拉出所有行,然后只计算与特定字符串匹配的特定行,例如:

mysql_query(
"SELECT *, (COUNT(unread = 1) AS msgsunread)
FROM message_received WHERE user_id = '$uid'");

最佳答案

您走在正确的轨道上。如果将示例中的计数语句扩展为完整的子查询,您将得到:

SELECT *,
(SELECT COUNT(*) FROM message_received WHERE unread = 1 AND user_id = $uid) AS unread_count,
FROM message_recieved WHERE user_id = $uid;

其中包含您要查找的未读计数(在每一行中!)。 MySQL 应该足够聪明,也可以缓存该计数查询的结果,这样您就可以在一个连接上有效地执行两个查询。

将计数标记到每一行似乎有点过分,但是......也许这是一个更好的选择两个查询的地方 - 你可以尝试在其他地方使用连接或 MySQL 的其他东西进行优化少一些麻烦 - 计数是优势臀部的一种疼痛。

希望这对您有所帮助!

PS:如果这是 PHP,您应该能够通过单个连接 执行任意数量的查询 - 只需调用 mysql_query(...) 多次,然后调用 mysql_close(...)

关于具有所有列的mysql查询加上对某一列的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5427770/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com