我正在为这个查询而苦苦挣扎,想知道我是否在浪费时间并需要编写一个 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 并停止偷懒吗?或者有没有办法让它工作?