Wenn ich alle recipeid
s auswählen möchten, dass man tagsid
, zum Beispiel umfassen:SQL wählen aus mehreren tagsid in derselben Zeile
tagsid = 1
recipeid = 2|12|1|8
Wenn ich diesen Code verwenden:
$query = "SELECT * FROM recipe where tagsid like '%".$tag_id."%'";
es zeigen recipeid
1
in tagsid
12, 1
, aber es sollte nur in tagsid 1
sein. Warum ist das falsch?
Ihre Datenbank muss normalisiert werden, um diesen Fall problemlos bewältigen zu können. Der Grund, warum Sie ein Problem haben, ist, dass '1' in der Zahl' 12' steht und Sie 'LIKE' verwenden, das nur nach einem Teilstring sucht. Sie könnten versuchen, wie '% | ". $ Tag_id." |%' "', Aber das hat andere Probleme. –
Tun Sie sich einen Gefallen, und normalisieren Sie Ihr Datenschema ^^ – moonwave99
Ich denke, Sie Frage wurde nach der Bearbeitung unklar kann man verstehen, was "rezeptid" ist, während Sie "tagsid" in Ihrer Abfrage haben? –