Problem mit in (...)
am 15.01.2008 21:57:43 von Nurkai
Hi @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 (...)
am 16.01.2008 10:00:08 von Boris Stumm
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 (...)
am 16.01.2008 10:47:36 von mueller
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 (...)
am 16.01.2008 17:13:15 von Claus Reibenstein
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 (...)
am 16.01.2008 17:40:46 von Nurkai
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 (...)
am 17.01.2008 11:41:33 von Thomas Rachel
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