Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9)

    Hallo,

    im Rahmen eines Tests ist mir aufgefallen, dass meine MySQL keine Ergebnisse für ein SELECT der Form

    Code:
    SELECT *                              FROM `cmp_application2user`                              WHERE `ApplicationID` = 3                              AND `UserID` = 1;
    ausspuckt. Das hat zur Folge, dass auf diese Tabelle immer wieder ein INSERT mit den Fremdschlüsseln zur Benutzer- und Applikationstabelle ausgelöst wird.

    Ich habe folgende Beobachtungen gemacht:
    1. Selektiere ich in meiner Applikation mit
    Code:
    SELECT  * FROM  `cmp_application2user`;
    bekomme ich immer ein Ergebnis.
    2. Selektiere ich mit dem obigen Statement, ist das Ergebnis Null, sprich ich bekomme keine Zeile zurück, obwohl ich genau weiß, dass in der Tabelle Datensätze gefunden werden müssten.
    3. Schicke ich das SELECT copy&paste auf der Kommandozeile ab, so bekomme ich auch keine Ergebnisse. Ein
    Code:
    SELECT * FROM cmp_application2user;
    liefert jedoch die gewünschten Ergebnisse:
    Code:
    mysql> SELECT * FROM cmp_application2user WHERE ApplicationID = 3 AND UserID = 1;
    Empty set (0.00 sec)
    
    mysql> select * from cmp_application2user;
    +-------+---------------+--------+
    | CMPID | ApplicationID | UserID |
    +-------+---------------+--------+
    |     1 |             1 |      3 |
    |     2 |             1 |      3 |
    |     3 |             1 |      3 |
    |     4 |             1 |      3 |
    |     5 |             1 |      3 |
    |     6 |             1 |      3 |
    |     7 |             1 |      3 |
    +-------+---------------+--------+
    7 rows in set (0.00 sec)
    
    mysql>
    4. Schicke ich das obige Statement in PHPMyAdmin ab, liefert es mir auch keine Ergebnisse, klicke ich mir das Statement im Reiter "Suche" zurecht (hier kommt dann
    Code:
    SELECT  * 
    FROM  `cmp_application2user` 
    WHERE  `ApplicationID`  =1
    AND  `UserID`  =3
    LIMIT 0 , 30
    raus), bekomme ich die gewünschten Ergebnisse.
    5. Schicke ich das Statement dann nochmal ab, erhalte ich wieder keine Ergebnisse.

    Hier nochmal die Tabellenstruktur:
    Code:
    mysql> explain cmp_application2user;
    +---------------+------------+------+-----+---------+----------------+
    | Field         | Type       | Null | Key | Default | Extra          |
    +---------------+------------+------+-----+---------+----------------+
    | CMPID         | tinyint(5) |      | PRI | NULL    | auto_increment |
    | ApplicationID | tinyint(5) |      | MUL | 0       |                |
    | UserID        | tinyint(5) |      |     | 0       |                |
    +---------------+------------+------+-----+---------+----------------+
    3 rows in set (0.00 sec)
    Ich habe folgendes vergeblich versucht:
    1. Ändern der Indizes
    2. Anlegen von eigenen Indizes für die Spalten "ApplicationID" und "UserID"
    3. Ändern der Storagengine auf INNODB
    4. Wechselweitiges Weglassen der Tics und einfachen Quotes
    5. Export -> Delete -> Import der Tabelle
    6. Reparieren der Tabelle
    7. Setzen der Verbindungskollations auf UTF8 oder wahlweise auch auf ISO-8859-1
    8. Umstellen des Zeichensatzes der PHP-Dateien
    9. Umstellen des Zeichensatzes der Auslieferung des HTML-Quelltextes

    Hat jemand Ideen oder kennt gar einen Bug/das Problem?
    Viele Grüße,
    Dr.E.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1. Think about software design before you start to write code!
    2. Discuss and review it together with experts!
    3. Choose good tools (-> Adventure PHP Framework (APF))!
    4. Write clean and reusable software only!
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  • #2
    Zitat von dr.e.-new Beitrag anzeigen
    Code:
    mysql> SELECT * FROM cmp_application2user WHERE ApplicationID = 3 AND UserID = 1;
    Empty set (0.00 sec)
    
    mysql> select * from cmp_application2user;
    +-------+---------------+--------+
    | CMPID | ApplicationID | UserID |
    +-------+---------------+--------+
    |     1 |             1 |      3 |
    |     2 |             1 |      3 |
    |     3 |             1 |      3 |
    |     4 |             1 |      3 |
    |     5 |             1 |      3 |
    |     6 |             1 |      3 |
    |     7 |             1 |      3 |
    +-------+---------------+--------+
    7 rows in set (0.00 sec)
    
    mysql>
    Ähm ApplicationID und UserID vertauscht? In diesem Fall hätte das Problem mit einem Wald und lauter Bäumen zu tun.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      I bin so a Depp! Den Dreher hatte ich auch schon beim Speichern der Relationen drin und hab mich gewundert, warum die Assoziationen nicht gelöscht werden. Und ich wollte schon fast meine MySQL neu installieren. Danke für das Bäume im Wald suchen.
      Viele Grüße,
      Dr.E.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1. Think about software design before you start to write code!
      2. Discuss and review it together with experts!
      3. Choose good tools (-> Adventure PHP Framework (APF))!
      4. Write clean and reusable software only!
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Kommentar


      • #4
        Und ich wollte schon fast meine MySQL neu installieren.
        Nach den obigen Ausführunge hätte ich Dir das zugetraut! Ich hab auch vpor dem Posten 3 mal hingesehen, bevor ich unserer Board-Koryphäe einen Flüchtigkeitsfehler unterstelle ...
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Ich hab auch vpor dem Posten 3 mal hingesehen, bevor ich unserer Board-Koryphäe einen Flüchtigkeitsfehler unterstelle ...
          Da sieht man mal, dass man auch als erfahrener Programmierer manchmal nicht von Blindheit verschont bleibt. Aber danke für das Kompliment!

          Thread erledigt!
          Viele Grüße,
          Dr.E.

          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          1. Think about software design before you start to write code!
          2. Discuss and review it together with experts!
          3. Choose good tools (-> Adventure PHP Framework (APF))!
          4. Write clean and reusable software only!
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

          Kommentar

          Lädt...
          X