mysql - 这个 SELECT 查询有什么问题?

标签 mysql select

我在互联网论坛上发现了这个帖子:

You could find out you're one of those new fangled web applications developers who don't actually know much about databases and don't see anything wrong with

SELECT * FROM `tbl_products` ORDER BY `product_times_bought` DESC LIMIT 0, 500

我是数据库新手,这对我来说似乎是一个有效的查询。然而有人说在实践中使用这样的查询有问题。我不知道为什么:效率?鲁棒性?这个查询可能有什么问题?

最佳答案

没有看到任何语法错误,但它的 * 被认为是不好的做法。问题是,您无法控制数据库返回哪些列,而且它会返回所有列(浪费带宽)。它可能存在其他问题,例如重新创建表时破坏顺序,如果您需要的列不存在,您将不会在选择查询本身中捕获该错误,而且读取它不会告诉您实际需要哪些列(大多数情况下您不知道)需要所有列)。因此,您应该询问您需要的特定列,而不是通用的 *。

伙计们,还有其他不好的做法或建议吗?

关于mysql - 这个 SELECT 查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261740/

相关文章:

mysql 查询,如何使用 GROUP_CONCAT 获得前 5 个下载

mysql - 在 MySQL 中计算转化率

mysql - 何时/应该在 1 中存在两个实体 :1 Relationship become a Single Entity?

MySQL子数据行有多个父键,需要构建select查询

mysql - SQL 一对多关系 - 如何根据多个对多属性来选择行?

php按路径选择数组

mysql - 如何仅选择最近(和多个)值一次?

MySQL 包含带有 order by 的特定行

MySql 查询示例

mysql - 如何将mysql表中的数据转换为Insert语句