1

私はこのクエリに苦労しており、時間を無駄にしていて PHP スクリプトを作成する必要があるかどうか、または次のようなことが実際に可能かどうかを知りたいですか?

UPDATE my_table 
SET @userid = user_id 
AND SET filename('http://pathto/newfilename_'@userid'.jpg')
FROM my_table 
WHERE filename 
LIKE '%_%' AND filename 
LIKE '%jpg'AND filename 
NOT LIKE 'http%';

基本的に、システムを変更しているときにファイル名と一致しないため、データベースで名前を変更する必要がある700の奇妙なファイルがあり、データベースで呼び出されます。形式は次の2_gfhgfhf.jpgように変換されますuserid_randomjumble.jpg

しかし、データベース内のすべてのファイルがこの形式であるわけではなく、数千のうち約 700 のみです。_ したがって、含まれているが含まれていない名前を識別したいと思いますhttp(これは、私が触れたくない正しい形式です)。

私はそれをうまくやることができますが、今はトリッキーなビットです!!

userid_randomjumble.jpgそのファイル名を次のように置き換えたいhttp://pathto/filename_userid.jpgので、その行の列 user_id を変数に設定し、それを新しいファイル名に挿入します。

上記は明らかな理由で機能しませんが、私がやろうとしていることを回避する方法があるかどうかはわかりません. それが可能かどうかわかりませんか?私はこれで時間を無駄にしていますか? mysql を使用して PHP に移行し、怠惰になるのをやめるべきですか? または、これを機能させる方法はありますか?

4

2 に答える 2

1

はい、php がなくても可能です。ここに簡単な例があります

SET @a:=0;
SELECT * FROM table WHERE field_name = @a;
于 2012-04-12T16:50:36.643 に答える