I have a table that looks like:
id ConsumerID StoredFileLinks Response ... Active Archived CreatedDate UpdatedDate
1255 9591 -1 [{"OriginalImage": "s3://crackd/inference_v2/5... {"success": true, "message": "Device has passe... ... 1 0 None 2019-10-30 11:11:09
1256 9590 22417 [{"OriginalImage": "s3://crackd/inference_v2/A... {"success": true, "message": "Unable to detect... ... 1 0 None 2019-10-30 10:30:42
1257 9589 22417 [{"OriginalImage": "s3://crackd/inference_v2/7... {"success": true, "message": "Unable to detect... ... 1 0 None 2019-10-30 10:30:25
1258 9588 22417 [{"OriginalImage": "s3://crackd/inference_v2/6... {"success": true, "message": "Unable to detect... ... 1 0 None 2019-10-30 10:30:13
1259 9587 22417 [{"OriginalImage": "s3://crackd/inference_v2/U... {"success": true, "message": "Unable to detect... ... 1 0 None 2019-10-30 10:30:06
Now I want to fetch all the rows whose "message" part under Response column doesn't contain the string, "Unable to..."
Query that I'm trying:
select * from table_name where StoredFileLinks is NOT NULL and
Response->'$.message' NOT LIKE 'Unable to detect%' or
Response->'$.message' NOT LIKE 'Your device is not%' order by RequestTime desc;
But it's still fetching me those rows whose Response column contains a message: 'Unable to."
Where am I messing up?