我有一个场景,我需要找到一个高于最后一个最高数字的数字,然后将该数字插入新行中,并且必须根据 2 if 语句执行两次,我为此使用了 mysql max
:
if(condtn1){
$maxNum = $this->model->query('SELECT SQL_NO_CACHE max(qte_number) + 1 as newQuoteNumber FROM qtes LIMIT 1');
$this->model->save($data) // the max number caluclated above inserts here and is visible in DB
}
if(condtn2){
$maxNum = $this->model->query('SELECT SQL_NO_CACHE max(qte_number) + 1 as newQuoteNumber FROM qtes LIMIT 1');
$this->model->save($data); //simillar case with some values different in data array
}
我假设在第一个条件下保存的数字现在将作为我在第二个条件下需要的数字的基础。就像第一个生成 200 并保存在数据库中一样,所以在第二种情况下它应该是 201,但在它们两个中它仍然是 200。我尝试了一些缓存选项来禁用缓存,例如
$this->cacheQueries = false;
并且还手动将其从 tmp 文件夹中删除,但没有效果。
谢谢大家。