有一段时间我总是将我的疑问作为一行:
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的上下文中完成的。
答案 0 :(得分:2)
这一切都取决于你的可读性,但对其他读者来说也必须清楚。
就个人而言,我这样做:
SELECT
table.id,
table.type,
table.name
FROM table
WHERE table.id > $lastId
AND table.type = $type
ORDER BY table.id ASC
哪个像你的例子一样易于阅读。总结:
答案 1 :(得分: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