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

das Ergebnis Set sollte 5 Zeilen enthält, die die ersten 5 Zeilen der Tabelle ist, aber ist eine Ausnahme über diese Verwendung? .die Tabelle wie folgt aus:MySQL Limit Klausel unusal Problem

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 

Ich benutze das erste SQL das Ergebnis ist normal: wie diese

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 

Allerdings benutze ich die zweite SQL wie folgt aus:

SELECT comapny_id,company_name FROM table LIMIT 5; 


1275992 
1758051 
2990914 
5241776 
5344925 

Wir sind Das Ergebnis ist natürlich nicht die 5 Zeilen der Tabelle, der Unterschied zwischen diesen Dateien ist, dass company_id ein Primärschlüssel ist, company_name ist eine Art von MUL.können Sie mir helfen? Vielen Dank!

+0

Es tut mir leid, dass das Format nicht schön ist – DLsky

Antwort

4

Das Ergebnis Set sollte 5 Zeilen enthalten Die ersten 5 Zeilen von die Tabelle, aber ist eine Ausnahme über diese Verwendung?

Nur der erste Teil dieser Aussage ist korrekt. Ihre Abfrage gibt 5 Zeilen aus der Abfrage zurück. Dies sind jedoch 5 unbestimmte Zeilen.

SQL-Tabellen repräsentieren ungeordnet Sets. Daher gibt es keine ersten fünf Zeilen in einer Tabelle. Wenn Sie Ihr Ergebnis sortiert haben möchten, müssen Sie eine order by Klausel einfügen. Häufig wird zu diesem Zweck eine automatisch inkrementierte ID verwendet, da eine solche ID die Reihenfolge erfasst, in der Zeilen in die Tabelle eingefügt werden.

+0

Wie Sie sagten, die SQL-Tabellen repräsentieren ungeordnete Mengen, Bedeutet es, dass die Grenze 5 Klausel Rückkehr 5 Zeilen ist nicht sicher? heute habe ich die sql mit SELECT company_name FROM tabelle LIMIT 5 getestet und SELECT company_name, tel FROM tabelle LIMIT 5, ich habe das result mit einer anderen company_name list. In den meisten Fällen ändert sich die Reihenfolge der Ergebnisse nicht, wenn verschiedene Dateien verwendet werden. – DLsky

+0

Können Sie mir sagen, warum ich das andere Ergebnisset nur ein anderes Feld verwende? weil ich das gleiche Ergebnis bekomme, benutze andere Tabellen.I bedeutet, dass das spezifische Feld gleich sein sollte. – DLsky

+0

@DLsky. . . Wenn Sie 'limit' ohne eine' order by' verwenden, können Sie die Daten in einer unbestimmten Reihenfolge erhalten. Zeitraum. Wenn Sie dieselbe Abfrage zweimal ausführen, kann dies zu unterschiedlichen Zeilen führen. –