Axel Richter: mysql order by

Beitrag lesen

Hallo,

Tabelle:
artikel
  artikel_id - primarykey, autoincrement

zb getResult(array(1,4,5)) würde folgende Query absetzen:

SELECT artikel_id, .... FROM artikel where artikel_id=1 OR artikel_id=4 OR artikel_id=5


> das Resultset wird dann zurückgegeben und weiter an getTable() übergeben.  
>   
> 1. Frage: Kann man diese SQL Query besser lösen? Gibts da nicht einen IN Operator oder so? In der MySQL Doku finde ich leider keine genaue Beschreibung der Where Klausel. zb WHERE artikel\_id IN (1,4,5) oder so.  
  
<http://dev.mysql.com/doc/refman/4.1/en/comparison-operators.html>  

>   
>   
> Jetzt habe ich aber ein Problem. Ich möchte getResult(4,5,1) aufrufen und die Records sollen in genau dieser Reihenfolge kommen, damit sie auch in dieser Reihenfolge in der Tabelle stehen. Da ich keine ORDER BY Klausel angebe, kommen sie aber in der Reihenfolge, in der sie eingegeben wurden. Dh. 1,4,5. Ich möchte aber, dass sie in der Reihenfolge 4,5,1 kommen.  
  
<http://aktuell.de.selfhtml.org/tippstricks/datenbanken/sqlsort/index.htm>  
  
<http://dev.mysql.com/doc/refman/5.0/en/string-functions.html>  
  
viele Grüße  
  
Axel