Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] insert select

Einklappen

Neue Werbung 2019

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

  • Gast-Avatar
    Ein Gast erstellte das Thema [Erledigt] insert select.

    [Erledigt] insert select

    Hey,

    ich versuche meine Tabellen auf doppelte einträge zu konrolieren und diese gegebenenfalls zu löschen, abe irgendwie bekomme ich es nicht hin.

    PHP-Code:
    $query="CREATE TABLE `witztest` (
    `id` INT(11) not null auto_increment,
    `text` TEXT NOT NULL,
    `kategorie` TEXT NOT NULL,
    `datum` int(11) NOT NULL default '0',
    `vote_gesamt` double NOT NULL default '0',
    `vote_anzahl` double NOT NULL default '0',
    `durchschnitt` double NOT NULL default '0',
    `ok` int NOT NULL,
    `name` text NOT NULL,
    PRIMARY key(id))"
    ;
    $abfrage=Mysql_query($query);
    $query1="insert into witztest select id, distinct text, kategorie, datum, vote_gesamt, vote_anzahl, durchschnitt, ok, name from witz";
    $abfrage1=Mysql_query($query1);
    if (
    $abfrage1) {
    $query2="drop table witz";
    $abfrage2=Mysql_query($query2);
    $query3="RENAME TABLE witztest to witz";
    $abfrage3=Mysql_query($query3); 
    so passiert beim insert select nichts, wenn ich aber die id nach hinten verlege funktioniert es zwar, aber die Werte werden nicht in der richtigen Rheinfolge abgespeichert. Also bei id steht dann der text drin und so.

    mfg

    sebastian

  • Zergling-new
    antwortet
    Na also

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Habs hinbekommen! Danke an alle auch an dich zergling. :wink:

    mfg

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Naja Syntaxfehler passieren meist aus zwei Gründen:
    1. Der Anwender weiß garnicht, dass er einen Syntaxfehler verursacht, weil er glaubt die Syntax lautet anders. Das ist allerdings oft nicht der Fall.
    2. Der Anwender erstellt das SQL-Statement in dem er PHP-Variablen einsetzt, welche meist einen anderen Wert haben als erwartet.

    Was liegt also näher, sich den nicht funktionierenden interpretierten SQL-Befehl ausgeben zu lassen?

    Du lässt nicht erkennen, dass du das bereits probiert hast...Also wieso sollen wir deine Probleme lösen, wenn du nicht mal selbst Bock hast sie zu lösen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    was denn zergling?soll dass ne hilfe sein?

    mfg

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    was denn zergling?soll dass ne hilfe sein?

    mfg

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Zitat von piti66
    Folgender Fehler kommt:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'distinct text, kategorie, datum, vote_gesamt, vote_anzahl, durchschnitt, ok, nam' at line 5
    ^^

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Dann müsstest du jetzt auch mal zeigen, wie deine Abfrage aussieht.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Folgender Fehler kommt:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'distinct text, kategorie, datum, vote_gesamt, vote_anzahl, durchschnitt, ok, nam' at line 5
    CREATE TABLE `witztest` ( `id` INT(11) not null auto_increment, `text` TEXT NOT NULL, `kategorie` TEXT NOT NULL, `datum` int(11) NOT NULL default '0', `vote_gesamt` double NOT NULL default '0', `vote_anzahl` double NOT NULL default '0', `durchschnitt` double NOT NULL default '0', `ok` int NOT NULL, `name` text NOT NULL, PRIMARY key(id))

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Zitat von piti66
    häh?
    Du hast mehrere Datensätze, die in allen Spalten (außer id) den gleichen Wert haben. Davon soll in die neue Tabelle aber nur noch ein Datensatz vorhanden sein. Aus welchem der bestehenden Datensätze soll dann die id für den neuen Datensatz genommen werden?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ohne Fehlerbehandlung (und ggf Fehlerausgabe) wird's halt nix
    PHP-Code:
    <?php
    function show_mysql_error($query) {
        echo 
    "<div>Fehler:
    \n"
    ,
            
    htmlentities(mysql_error()),
            
    "
    \n"
    ,
            
    htmlentities($query),
            
    '</div>';    
    }

    $query="CREATE TABLE `witztest` (
            `id` INT(11) not null auto_increment,
            `text` TEXT NOT NULL,
            `kategorie` TEXT NOT NULL,
            `datum` int(11) NOT NULL default '0',
            `vote_gesamt` double NOT NULL default '0',
            `vote_anzahl` double NOT NULL default '0',
            `durchschnitt` double NOT NULL default '0',
            `ok` int NOT NULL,
            `name` text NOT NULL,
        PRIMARY key(id))"
    ;
    $abfrage=Mysql_query($query) or show_mysql_error($query);

    $query1='INSERT INTO
                witztest
                (id,text,kategorie,datum,vote_gesamt,vote_anzahl,durchschnitt,ok,name)
            SELECT
                id, distinct text, kategorie, datum, vote_gesamt, vote_anzahl, durchschnitt, ok, name
            FROM
                witz'
    ;
    $abfrage1=Mysql_query($query1) or show_mysql_error($query);
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    häh?

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Woher soll MySQL eigentlich wissen, aus welcher Spalte id genommen werden soll, wenn es mehrere Datensätze gibt, in denen die restlichen Spalten identisch sind?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Also so gehts auch nicht:

    insert into witztest(id,text,kategorie,datum,vote_gesamt,vote_ anzahl,durchschnitt,ok,name) select id, distinct text, kategorie, datum, vote_gesamt, vote_anzahl, durchschnitt, ok, name from witz

    Noch ne andere idee? Wie gesagt wenn ich id nach hinten verlege gehts, aber werte sind in falscher spalte!

    mfg

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich glaube das ist nicht ganz das was du suchst, aber was ist denn mit unique?

    mfg coda

    PS: Mein erster Eintrag hier...

    Einen Kommentar schreiben:

Lädt...
X