你知道什麼是一些很酷的SQL短手?SQL查詢快捷鍵
例如,這是我今天學到的是,你可以通過索引指定組:
SELECT col1, col2 FROM table GROUP BY 2
這將組通過COL2
你知道什麼是一些很酷的SQL短手?SQL查詢快捷鍵
例如,這是我今天學到的是,你可以通過索引指定組:
SELECT col1, col2 FROM table GROUP BY 2
這將組通過COL2
閱讀Aaron Bertrand的「壞習慣在SQL踢」系列 - 他對這個職位,並使用該符號強烈建議不:
http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/06/bad-habits-to-kick-order-by-ordinal.aspx
馬克
序數 - 使用對在這個地方一個參考號碼SELECT子句 - 可以在GROUP BY和ORDER BY子句中使用。但我不推薦他們,因爲如果訂單更改,將會影響您的查詢。
表格別名是必須的。 IE:
SELECT
FROM THIS_IS_MY_UNGODLY_TABLE_NAME timutn
...意味着我可以用timutn
,而當我想不是鍵入完整的表名/需要明確列來自哪個表的。當你必須自己加入一個表時,以及誰真的想要始終鍵入整個表名?
真正讓我進入表別名的是,如果您使用表別名,某些SQL IDE具有足夠智能的智能感知以僅爲該表提供列的列表。
+1,我一直使用別名。 – 2009-11-13 04:43:23
SQL Server中沒有GROUP BY。 – gbn 2009-11-13 06:55:51
如果你的條件爲您的查詢不知道,當你實際運行它,WHERE 1=1
是有用的
例如
$query = 'SELECT * FROM table ';
<?php if ($something) { ?>
$sql.= 'WHERE something = ' . $variable;
<?php } else { ?>
$sql.= 'WHERE something = ' . $another;
<?php } ?>
如果有很多分支正在進行,它可能是這樣的痛苦(不,我不相信構建查詢字符串,但這只是爲了示例)。
更簡單的方法:
$query = 'SELECT * FROM table WHERE 1=1 ';
<?php if ($something) { ?>
$sql.= 'AND something = ' . $variable;
<?php } else { ?>
$sql.= 'AND something = ' . $another;
<?php } ?>
當然,我可能會使用一個包裝/類具有where
方法中,我可以指定條件。
你能解釋一下你爲什麼使用它以及它給了什麼好處? – gbn 2009-11-13 06:54:50
啊我明白了。所以你可以更容易地在客戶端代碼中建立SQL語句,希望你不要讓自己開放SQL注入... ;-) – gbn 2009-11-13 07:31:21
+1:在PHP中,我使用implode函數構建where語句,然後使用作爲邏輯運算符的分隔符ex: $ q =「select * from mytable where」.implode('and',$ _ where); 顯然$ _where必須是一個數組,您可能還需要通過在添加where子句之前檢查sizeof()來創意:) – 2013-12-21 19:30:23
這樣的問題應該是社區wiki – 2009-11-13 04:35:36
我不認爲所有SQL實現都支持group by的序號。 – 2009-11-13 05:46:41
不是一個捷徑:它很危險。並且不支持SQL Server至少有 – gbn 2009-11-13 06:57:15