![]() |
Datenbank: mySQL • Version: 5.0.18 • Zugriff über: DirectSql
Problem mit UPDATE - Query
Hallo,
Ich habe ein Problem mit einer Query-Abfrage die ich derzeit mit einer Notlösung behandle. Aus Gründen der Performence möchte ich diese 2 Querys mit einer Abfrage abdecken. Tabelle:
SQL-Code:
Funktionierend:
-- Table "batvol" DDL
CREATE TABLE `batvol` ( `Number` bigint(20) unsigned NOT NULL auto_increment, `Value` decimal(24,12) NOT NULL, `TimeSt` decimal(18,12) unsigned NOT NULL, `Attribut` varchar(10) NOT NULL default '?', `Timestamp Update` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`Number`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Table : battery voltage in 0.1 V='
SQL-Code:
Wunsch: (eine Query in der Art) {Nr :=} SELECT MAX(`Number`) FROM `batvol` UPDATE `batvol` SET `Value`="273.1",`TimeSt`="38.41",`Attribut`="Change" WHERE Number=4 {Nr}
SQL-Code:
UPDATE `batvol` SET `Value`="273.1",`TimeSt`="38.41",`Attribut`="Change" WHERE Number=(SELECT MAX(`Number`) FROM `batvol`) Danke im Vorraus |
Re: Problem mit UPDATE - Query
Ich glaube nicht das MySQL Nested Queries unterstützt
|
Re: Problem mit UPDATE - Query
Prinzipiell könnte so etwas gehen:
SQL-Code:
lässt sich das in MySQL umsetzen?
UPDATE `batvol` b SET `Value`="273.1",`TimeSt`="38.41",`Attribut`="Change" WHERE NOT EXISTS(SELECT * FROM `batvol` WHERE NUMBER > b.NUMBER)
|
Re: Problem mit UPDATE - Query
Hi,
ab Version 4.1 werden subqueries unterstützt. Probiere doch mal:
SQL-Code:
Grüße vom marabu
UPDATE batvol SET
Value = 273.1, TimeSt = 38.41, Attribut = 'Change' WHERE Number IN (SELECT MAX(Number) FROM batvol) sah nicht so schön aus: `Value` = "273.1" |
Re: Problem mit UPDATE - Query
Danke für die Antworten, doch leider nicht erfolgreich.
Error Code : 1093 You can't specify target table 'batvol' for update in FROM clause (20 ms taken) Please help.... |
Re: Problem mit UPDATE - Query
Zitat:
1.) UPDATE und Subquery harmonieren nicht miteinander(hab Subqueries bisher nur mit SELECT benutzt) -->fänd ich jetzt komisch 2.) Das FROM wird auf das UPDATE und nicht auf das SELECT bezogen --> ein zusätzliches Klammerpar könnte da Abhilfe schaffen... mfg Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz