My raw query is working fine but after converting it to Laravel eloquent it’s not working.
SELECT key_vals.`key`, key_vals.`value` FROM key_vals WHERE TIMESTAMPDIFF(MINUTE, key_vals.`last_store_time`, now()) < (SELECT ttl from ttls)
Advertisement
Answer
You can do the sub query and pass the result to the outer query:
$ttl = Ttl::select('ttl')->first(); $results = KeyValue::select('key', 'value') ->where(DB::raw('TIMESTAMPDIFF(MINUTE, key_vals.`last_store_time`, now())'), '<', $ttl->ttl);
The inner query Ttl::select('ttl')
should return a single cell value though, I just tried to do it as you mentioned in your example