[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

query complicata con espressioni regolari



ciao a tutti

avrei un problema con le espessioni regolari dentro ad una query mysql
inglobata a sua volta in uno script  :)

chpass() {
mysql --database="$MYDB" --user="$USER" --password="$PASSWD" -e
"UPDATE phpbb_users
SET user_password = \"$HPPASS\" WHERE username = \"$PHPBB_USER\""
}

questo sopra è un esempio che uso per modificare via script la passwd
di un utente in phpbb.

Ora peró vorrei cancellare una parte di testo dal campo "
phpbb_posts/post_text" ma solo se dentro a questo testo appare:
[quote]nome utente,20/7/2012, 19:54] e il nome utente coicide con il
relativo campo " phpbb_posts/post_username"

Praticamente c' è da cancellare la linea "[quote]Alfredo,20/7/2012,
19:54]" solo se nel campo  "post_username" il nome coincide con
"Alfredo".

A complicare le cose... la data di fianco è variabile, e il
"[quote]Alfredo,20/7/2012, 19:54]"
è sempre nella seconda linea

Come se non bastasse, se nel messsaggio compare un
"[quote]Alfredo,20/7/2012, 19:54]", ma nel "post_username" il nome è
differente da "Alfredo", allora bisogna lasciarlo.

..e naturalmente il resto del messaggio deve rimanere inalterato.

qualche idea?

io stavo pensando di estrarre il post_id,post_text,post_text con una
query, fare le comparazioni con gli strumenti della shell linux,
togliere eventualemente il testo e poi reimmettere il testo modificato
usando come riferimento il post_id

o ci sono soluzioni migliori... e più rapide... interne a mysql?

ciao
MaX


Reply to: