Announcement

Collapse
No announcement yet.

Subselect ...LIKE %table.column (pro)%

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Subselect ...LIKE %table.column (pro)%

    Ich habe eine Tabelle mit folgendem Aufbau:

    Gegenstand (primary key)
    pro-Votes (int)
    kontra-Votes (int)
    Voter (text)

    wobei in Voter alle User aufgelistet sind (user (pro), user2 (kontra, user3 (pro),...)

    Nun würde mich mal interessieren, ob es User gibt, die generell pro oder generell kontra voten! Obwohl ich in SQL ziemlich fit bin, krieg ich das nicht ganz hin

    SELECT name,
    (SELECT count(id) FROM fohlen WHERE passVoter like '%'+r.name+' (pro)%') AS proVotes,
    (SELECT count(id) FROM fohlen WHERE passVoter like '%'+r.name+' (kontra)%') AS kontraVotes
    FROM user r
    HAVING proVotes/(kontraVotes+proVotes)>0.95 OR kontraVotes/(kontraVotes+proVotes)>0.95
    LIMIT 1

    Ich habs mit der Usertabelle verknüpft.
    Aber da bekomme ich immer 0 wenn ich like '%r.name (pro)%' schreibe!
    Mit der Version oben akzeptiert die Datenbank das Plus nicht. Mit einem Punkt genauso wenig (ist in PHP eingebaut). Wie wäre es richtig?

    Oder fällt euch sogar noch eine zeitsparendere Lösung ein ohne Subselect / join?

  • #2
    Mit || als Verknüpfung bekomme ich zwar keine Fehlermeldung, aber die Subselects zählen jeweils alle Datensätze (bei pro und kontra, für jeden User). also scheint da dann r.name auch nicht korrekt genommen zu werden
    Zuletzt editiert von CLL; 17.10.2010, 16:29.

    Comment


    • #3
      Lösung gefunden!
      Mit concat('%', column)!

      Comment

      Working...
      X