Problem mit in (...)
Hi [at] all,
Eine Funktion bekommt als Parameter eine In-Klausel.
Beispiel:
'(1,2,3,...)' geht ja auch, aber bei ...
'select * from artikel where id in (1,1)' liefert natürlich den
Datensatz 1x, brauche Ihn aber 2x.
Das kann ich auch im Code lösen, wäre aber toll, wenn jemand dafür ne
Lösung hätte.
Hat jemand ne Idee?
Re: Problem mit in (...)
Kai Schwartze wrote:
> 'select * from artikel where id in (1,1)' liefert natürlich den
> Datensatz 1x, brauche Ihn aber 2x.
select * from artikel where id in (1)
union
select * from artikel where id in (1)
Re: Problem mit in (...)
Boris Stumm wrote:
> Kai Schwartze wrote:
>> 'select * from artikel where id in (1,1)' liefert natürlich den
>> Datensatz 1x, brauche Ihn aber 2x.
>
> select * from artikel where id in (1)
> union
> select * from artikel where id in (1)
Wenn dann
SELECT * FROM artikel WHERE id = 1
UNION ALL
SELECT * FROM artikel WHERE id = 1;
weil per default UNION DISTINCT gemacht wird.
Robert
Re: Problem mit in (...)
Kai Schwartze schrieb:
> 'select * from artikel where id in (1,1)' liefert natürlich den
> Datensatz 1x, brauche Ihn aber 2x.
Das geht nur, wenn Du Dir anhand der IN-Liste ein entsprechendes
SQL-Statement zusammenbaust. Von sich aus liefert MySQL mit dieser Liste
korrekterweise genau einen Datensatz.
Gruß. Claus
Re: Problem mit in (...)
select * from artikel where A_ID in (1)
union all
select * from artikel where A_ID in (1)
Ja, also im Prinzip geht das, aber leider ist das eine temporäre
Tabelle
Can't reopen table: 'tmp_artikel'
Re: Problem mit in (...)
Kai Schwartze schrieb:
> 'select * from artikel where id in (1,1)' liefert natürlich den
> Datensatz 1x, brauche Ihn aber 2x.
CREATE TEMPORARY TABLE zaehlen (lfd int auto_increment primary key, id int);
INSERT INTO zaehlen (id) VALUE (1),(1),(2),(4);
SELECT * FROM artikel JOIN zaehlen ON (id) ORDER BY lfd;
(ungetestet)
HTH,
Thomas