0

有一段时间,我总是把我的疑问放在一行:

SELECT * FROM table WHERE col = value ORDER BY id DESC

现在我已经多次被告知不要使用*,我一直在尝试找到一种方法来使更长的查询可读。到目前为止,我有这样的事情:

SELECT table.id,
       table.type,
       table.name

FROM table

WHERE table.id > $lastId
AND table.type = $type

ORDER BY table.id ASC

这似乎没问题,但是我应该看看周围有什么最佳实践吗?

我的 MySQL 东西是在 PHP 的上下文中完成的。

4

2 回答 2

2

这一切都取决于您可以阅读的内容,但其他读者也必须清楚这一点。

就个人而言,我这样做:

SELECT 
    table.id,
    table.type,
    table.name
FROM table
WHERE table.id > $lastId
    AND table.type = $type
ORDER BY table.id ASC

就像您的示例一样,它很容易阅读。总之:

  • 使您的 SQL 可读,以便您的代码的其他用户知道发生了什么,但是;
  • 使用你个人觉得舒服和喜欢使用的风格。
于 2012-03-20T01:14:57.643 回答
2

我有这样的:

SELECT 
    t.id,               //indent fields to pick out
    t.type,
    t.name
FROM 
    table t             //shorter alias (but alias wisely)
WHERE 
    t.id > $lastId      //indent conditions
    AND t.type = $type
ORDER BY 
    t.id ASC            //indent order parameters
于 2012-03-20T01:20:31.437 回答