Zum Inhalt springen

SELECT mit "IN", Id in BLOB-Liste finden

Erstellt am 8. Juni 2006 · 3 Antworten · letzte Antwort am 9. Juni 2006

Tags: Datenbank, Frage

jrab ·

Hi,

ich versuche per SQL, in einer Typo3-ID-BLOB-Sammlung eine ID zu finden:

$res = $db->sql(TYPO3_db,"SELECT TAB1.description,TAB1.preis,TAB1.art,TAB1.uid FROM tabelle1 AS TAB1,tabelle2 AS TAB2 WHERE TAB2.uid IN (SELECT TAB1.id_link FROM tabelle1 AS TAB1B WHERE TAB1.uid=TAB1B.uid)");

id_link ist ein typisches Typo3-BLOB-Feld, in welchem Link-IDs von anderen Tabellen in Form Id1,Id2,Id3... geschrieben werden. Ich möchte halt gucken, ob sich in der Liste eine Id befindet. Wie muss da die korrekte SQL-Syntax lauten? Ich habe mich nach Mysql.org Doku gerichtet (wahrscheinlich jedoch falsch)...

"SELECT s1 FROM t1 WHERE s1 IN (SELECT s1 FROM t2);"

Es kommt nur Fehlermeldung.

steffenk ·

subqueries gibts erst ab MySQL 4.1

dann ist Deine subquery seltsam, der Verweis kann nicht gut gehen, da steht dann sowas wie

3 = '1,2,3'

SELECT TAB1.description,TAB1.preis,TAB1.art,TAB1.uid, TAB2.*
FROM tabelle1 TAB1
left join tabelle2 TAB2 ON TAB2.uid IN (TAB1.id_link)
jrab ·

TAB2.uid IN (TAB1.id_link) funktioniert irgendwie nicht in BLOBS die mit dem Extension Kickstarter erstellt wurden.

z.B.
id_link = BLOB(2,1);

2 IN (id_link) = TRUE , 1 IN (2,1) = FALSE

Warum?

steffenk ·

fehlerhafte MySQL-Version ?
das funktioniert schon, hat auch nichts mit Kickstarter oder Blob zu tun.