phpbar.de logo

Mailinglisten-Archive

WHEN THEN Syntax

WHEN THEN Syntax

Manfred Gnädig manfred at mg-mailing.de
Mon Jan 17 19:13:48 CET 2005


Hallo Herr Pfeifer,
Sie sind wirklich ein Genie.
Und ich hatte wegen Dieser Sache zwei Nächte lang nicht geschlafen (;-))

Es funktioniert ganz hervorragend.

Wenn ich die Tabelle anlege, bekomme ich einen Syntax ERROR.
Wenn ich das ENGINE=MyISAM weglasse geht es aber.

Was bedeutet eigentlich das MyISAM?
Ist das wichtig?

Liebe Grüße und herzlichen Dank
Manfred

> Hallo Manfred,
>
> denke, dass die nachfolgenden Querys Dein Problem loesen:
>
> # zuerst die Tabelle
> CREATE TABLE strings (
>   word varchar(33) NOT NULL default '',
>   anzl int(11) NOT NULL default '0',
>   UNIQUE KEY word (word)
> ) ENGINE=MyISAM;
>
> # und dann der Ablauf:
> SET @anzahl = 0;
> SET @neuword = 'Dieter';
> SELECT (@anzahl := anzl) AS zz FROM strings WHERE word LIKE @neuword;
> REPLACE INTO strings SET word = @neuword, anzl = @anzahl;
> UPDATE strings SET anzl = (anzl + 1) WHERE word LIKE @neuword;
>
> # sowie die Kontrolle:
> SELECT * FROM strings;
> +-----------+------+
> | word      | anzl |
> +-----------+------+
> | Norbert   |    6 |
> | Siegfried |    2 |
> | Rorbert   |    7 |
> | Dieter    |    1 |
> +-----------+------+
> 4 rows in set (0.05 sec)
>
> Wobei ich das sicher lieber mit PHP loesen wurde.
> REPLACE ist vor allem bei auto_increment-Feldern
> keine so gute Wahl ...
>
>
> m. b. G. Norbert
> _____________________
> normal:  02686-987103
> Notruf:  0163-3613642
> ---------------------
> e.o.m.


-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive