Mysql IN Statement in Spalten

dummdidummoei

Grünschnabel
Es kann sein dass ich einem Denkfehler aufsitze.
Folgendes Problem habe ich:

Ich hab beistrichgetrennt Einträge in einer DB.

Folgendes Beispiel sollte untermauern was ich meine:

Tablename: test

id id_ref_db_1
902 1036,1037,2032

das Feld id_ref_db_1 ist ein varchar feld in dem user beistrich getrennt ID's eintragen können.
(Zweck spielt keine Rolle)

die zu suchende ID wird übergeben: ref_id = 1037;

die Abfrage lautet:
PHP:
$sql = "SELECT * FROM test WHERE $ref_id IN (id_ref_db_1)";
Diese Abfrage gibt mir kein Ergebnis aus, also versuchte ich dies hier
PHP:
$sql = "SELECT *,concat('(',test.id_ref_db_1,')') AS str_cc_ref1 FROM test WHERE $ref_id IN str_cc_ref1";
Diese führt zu einem SQL Fehler

Any suggestions?


Danke im Voraus
 
die Lösung lag auf der Hand, ich musste nur im manual nochmals genauer nachlesen..

PHP:
$sql = "SELECT * FROM test WHERE FIND_IN_SET(".$ref_id.",id_ref_db_1)";

so funktioniert es

was ich allerdings schräg finde, ist die tatsache dass untenstehendes Beispiel nicht t

PHP:
$sql = "SELECT *, FIND_IN_SET(".$ref_id.",id_ref_db_1) AS foundset FROM test WHERE foundset > 0";

Sehr wohl kann ich aber nach foundset sortieren.
 

Neue Beiträge

Zurück