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

Re: query complicata con espressioni regolari



opss  rileggento ho visto un errore:

while [ $post_id = 0 ]; do  -->  while [ $max_post_id = 0 ]; do

Il 13/02/15, MaX<maxlinux2000@gmail.com> ha scritto:
> pensavo di fare una cosa del genere, ma si tratta di 400.000 post, e
> non si se è abbastanza veloce
>
> --------------------------------------
> source config.conf
>
> post_id=$(mysql --database="$MYDB" --user=$USER --password="$PASSWD"
> -e "SELECT MAX(post_id) AS post_id FROM phpbb_posts;")
>
> max_post_id=$(echo $post_id | sed 's|^post_id ||')
> #echo max_post_id=$max_post_id # numero da usare per il ciclo for o while
>
> while [ $post_id = 0 ]; do
>
>     post_username=$(mysql --database="$MYDB" --user=$USER
> --password="$PASSWD" -e "SELECT post_username FROM phpbb_posts WHERE
> post_id= $post_id;")
>     post_username=$(echo $post_username | sed 's|^post_username ||')
> #    echo post_username=$post_username
>
>     post_text=$(mysql --database="$MYDB" --user=$USER
> --password="$PASSWD" -e "SELECT post_text FROM phpbb_posts WHERE
> post_id= $post_id;")
>     post_text=$(echo $post_text | sed 's|^post_text ||')
>
>     new_post_text=$(echo $post_text | sed
> "s|\[quote:3pjjad9s\]$post_username&#44;\([0-9/]*\)&#44;
> \([0-9:]*\)\]<br>||I")
> #    echo $new_post_text
>     mysql --database="$MYDB" --user="$USER" --password="$PASSWD" -e
> "UPDATE phpbb_posts SET post_text = \"$new_post_text\" WHERE post_id =
> \"$post_id\""
>
>     let post_id=post_id-1
> done
> --------------------------------------------
>
> ...che ne dite?
> MaX
>
> Il 13/02/15, MaX<maxlinux2000@gmail.com> ha scritto:
>> 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
>>
>
>
> --
> ciao,
> MaX
>


-- 
ciao,
MaX


Reply to: