7 messaggi dal 26 settembre 2008
Salve,

ho un problema che ormai non riesco a risolvere da qualche giorno, anche perché in rete non trovo nessun esempio che si adatti alle mie esigenze.

Ho una tabella ARTICOLI che recupera le foto da una cartella che devo necessariamente rinominare e, nello specifico, lo fa con i dati inseriti nel campo FOTO.

Si tratta di una tabella con circa 3000 record, se non di più, e quindi farlo a mano è fuori questione.

Devo quindi sostituire solo il nome della cartella, lasciando invariato il resto, ovvero il nome della foto.

Ho fatto quindi questa query che eseguo direttamente in PhpMyAdmin.


UPDATE articoli SET foto = replace(foto, '/cartellaattuale/%', '/nuovacartella/%') where IDarticolo = 6


Ho fatto anche una pagina asp che lancia la query, ma nulla da fare.

Pur non dandomi nessun messaggio di errore, non aggiorna nulla. Ovviamente ho fatto una query con un WHERE in modo da provare solo su di un articolo, per evitare di fare casini, anche se ho il backup della tabella.

Se al posto di % metto il nome della foto, ad esempio cane.jpg, funziona.

Ci sto sbattendo la testa da troppo tempo ormai. Un piccolo aiuto sarebbe graditissimo.

Grazie e buona giornata a tutti
salve danieled,
non conosco la sintassi in MySQL, ma in SQL Server la seguente funziona

SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.test (
  Id int NOT NULL PRIMARY KEY,
  Photo varchar(100) NULL
  );
GO
INSERT INTO dbo.test
  VALUES ( 1, '/cartellaAttuale/photo1.jpg')
    , ( 2, '/cartellaAttuale/photo2.jpg')
    , ( 3, '/cartellaAttuale/photo3.jpg')
    , ( 4, '/altracartella/photo4.jpg')
    , ( 5, '/altracartella/photo5.jpg');
GO
DECLARE @oldCartella varchar(500) = '/cartellaAttuale/';
DECLARE @newCartella varchar(500) = '/nuovacartella/';

SELECT *
  FROM dbo.test;
  
UPDATE dbo.test
  SET Photo = REPLACE(Photo, @oldCartella, @newCartella)
  WHERE Photo LIKE '%' + @oldCartella + '%';

SELECT *
  FROM dbo.test;

GO
DROP TABLE dbo.test;
--<--------
Id          Photo
----------- -----------------------------
1           /cartellaAttuale/photo1.jpg
2           /cartellaAttuale/photo2.jpg
3           /cartellaAttuale/photo3.jpg
4           /altracartella/photo4.jpg
5           /altracartella/photo5.jpg

Id          Photo
----------- -----------------------------
1           /nuovacartella/photo1.jpg
2           /nuovacartella/photo2.jpg
3           /nuovacartella/photo3.jpg
4           /altracartella/photo4.jpg
5           /altracartella/photo5.jpg


saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
7 messaggi dal 26 settembre 2008
Grazie per la risposta.

Comunque ho risolto. Basta non mettere il % e lui sostituisce solo quello che deve, lasciando invariato il resto.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.