我的问题很容易解释:在我的纯FTP配置文件中,只有一个INSERT-Statement允许读取密码。就像这样:

SELECT password FROM ftpuser WHERE userid = "\L"


“ \ L”是用户标识的占位符。它运行完美,但是我需要计算对ftp服务器的访问。该表中有一个称为“已访问”的字段。因此,我也需要运行以下SQL:

UPDATE ftpuser SET accessed = accessed + 1 WHERE userid = "\L"


有什么办法可以将这两个语句合而为一,结果是“ password”?还是有另一种方法可以触发来自纯FTP的访问?非常感谢你!

塞巴斯蒂安

最佳答案

如果是保留原子性的问题,那么如果您的表是使用事务引擎存储的(例如InnoDB),则可以使用locking read将整个内容包装在事务中:

START TRANSACTION;
SELECT password FROM ftpuser WHERE userid = '\L' FOR UPDATE;
UPDATE ftpuser SET accessed = accessed + 1 WHERE userid = '\L';
COMMIT;

09-10 10:24