2017-01-02 49 views
0
SELECT id,name,info FROM table LIMIT 5 

結果集應該包含5行至少是表的前5行,但是有關此用法的任何異常?這樣.the表:MySQL限制條款非常規問題

SELECT * FROM table limit 10; 

1. company_id company_name   tel 
1 TCL集團股份有限公司 0752-2288333  
2 UNITEDSTACK(北京)科技有限公司 15727325616 
3 《市政技術》雜誌社有限公司 13401070358 
4 《網絡安全技術與應用》雜誌社有限公司 010-62765013  
5 《藝術市場》雜誌社股份有限公司 64271947 
7 一呼醫知己健康諮詢(北京)有限公司 010-62957992 
8 一呼(北京)電子商務有限公司 62957992  
9 一汽轎車股份有限公司 0431-85782608 
10 一通萬通商務服務(北京)有限公司 010-68061805 

我用的第一個SQL的結果是正常的:像這樣

SELECT company_id,company_name,tel FROM table LIMIT 5; 

1. 1 TCL集團股份有限公司 0752-2288333 
2 UNITEDSTACK(北京)科技有限公司 15727325616 
3 《市政技術》雜誌社有限公司 13401070358 
4 《網絡安全技術與應用》雜誌社有限公司 010-62765013 
5 《藝術市場》雜誌社股份有限公司 64271947 

但是我用的是第二個這樣的SQL:

SELECT comapny_id,company_name FROM table LIMIT 5; 


1275992 
1758051 
2990914 
5241776 
5344925 

我們看到結果顯然不是表格的第5行,這些文件的區別在於company_id是主鍵,company_name是MUL的一種類型,你可以幫助我嗎?非常感謝!

+0

對不起,格式不漂亮 – DLsky

回答

4

結果集應該包含5行這是表的前5行 ,但是有關此用法的任何異常?

只有本聲明的第一部分是正確的。您的查詢返回查詢中的5行。但是,這些是5個不確定的行。

SQL表格代表無序集合。因此,表格中沒有前五行。如果您想要訂購結果集,那麼您需要包含一個order by子句。通常,自動遞增的id用於此目的,因爲這樣的id捕獲行插入到表中的順序。

+0

正如你所說,SQL表格代表無序集合,這是否意味着限制5條款返回5行是不確定的?今天我用SELECT company_name FROM table LIMIT 5來測試sql; SELECT company_name,tel FROM table LIMIT 5,我得到了帶有不同company_name列表的結果集。在大多數情況下,使用diffrent fileds時,結果集順序不會改變? – DLsky

+0

你能告訴我爲什麼我得到不同的結果集只使用不同的字段?因爲我得到相同的結果集使用其他tables.I意味着具體領域應該是相同的。 – DLsky

+0

@DLsky。 。 。當您使用'limit'而沒有'order by'時,您可以以任何不確定的順序獲取數據。期。兩次運行相同的查詢可能會導致不同的行。 –