phpbar.de logo

Mailinglisten-Archive

SELECT IF

SELECT IF

Uwe Driessen driessen at fblan.de
Son Mar 29 13:47:09 CEST 2009


On Behalf Of Hannes Streicher
> am Samstag, 28. März 2009 um 23:33 schrieben Sie:
> 
> 
> > Beide Varianten funktionieren leider nur wenn alle Felder eindeutig sind
> 
> dann wuesste ich nur eine loesung mit 2 statements
> 

Zu der Erkenntnis komme ich auch langsam. Wäre schön gewesen wenn ich das hätte mit einem
Statement machen können.

Ich versuche es nun wie folgt zu lösen 

SELECT  @tempid := IF( 
	(SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net'  AND TYPE =
'SOA')>0,
	(SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net' AND TYPE =
'SOA'),
	'NULL');
REPLACE INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date)
        SELECT @tempid, t1.id, 'abi-1992.net', 'SOA', concat( 'ns1.deltaweb.de.
hostmaster.deltaweb.de.', CURDATE( ) +0, '00 86400 7200 604800 1800' ) , 21600, 0,
Unix_timestamp( )
FROM pdns.domains t1 where t1.name ='abi-1992.net' ;

Wobei hier auch ein insert... update on duplicate key gehen müsste das würde die ID's
nicht erhöhen 

Also 

SELECT  @tempid := IF( 
	(SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net'  AND TYPE =
'SOA')>0,
	(SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net' AND TYPE =
'SOA'),
	'NULL');
INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio, change_date)
        SELECT @tempid, t1.id, 'abi-1992.net', 'SOA', concat( 'ns1.deltaweb.de.
hostmaster.deltaweb.de.', CURDATE( ) +0, '00 86400 7200 604800 1800' ) , 21600, 0,
Unix_timestamp( )
FROM pdns.domains t1 where t1.name ='abi-1992.net' ON DUPLICATE KEY UPDATE name =
'abi-1992.net', domain_id = t1.id, type = 'SOA',
 change_date = concat('ns1.deltaweb.de. hostmaster.deltaweb.de.',CURDATE() + 0,'00 86400
7200 604800 1800'), 
	ttl= 21600,
	prio=0,
	change_date = Unix_timestamp() ;


evtl. hat ja noch jemand eine Idee wie das mit einem Statement oder kürzer geht.

Mit freundlichen Grüßen

Drießen

-- 
Software & Computer
Uwe Drießen
Lembergstraße 33
67824 Feilbingert
Tel.: +49 06708 / 660045   Fax: +49 06708 / 661397


_______________________________________________
Allgemeine Infos zur Liste: http://www.4t2.com/mysql/
Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de

php::bar PHP Wiki   -   Listenarchive