Sample data
x
| data_col |
| --------------------|
| Realdata |
| Firsttest |
| testSecond |
| onetesttwo |
| exceptiontestunique |
| legitdata |
I wanted to filter out all the data that contains test with the exception of one
My expected return result is:
Realdata
exceptiontestunique
legitdata
I can code this in PHP like this.
if (strpos($data, 'test') === false || $data === 'exceptiontestunique') return $data;
Or in JavaScript like this
if (data.indexOf('test') === -1 || data === 'exceptiontestunique') {
return data;
}
But I need it in SQL
WHERE data_col NOT LIKE '%test%'
???????
const datas = ['realdata', 'Firsttest', 'testSecond', 'onetesttwo', 'exceptiontestunique', 'legitdata'];
const filtered = datas.filter(data => {
if (data.indexOf('test') === -1 || data === 'exceptiontestunique') {
return data;
}
})
console.log(filtered);
Advertisement
Answer
I can see that in your PHP/Js code you’re defining two condition; any value that have ‘test’ in them but not exceptiontestunique
. With a specific condition like that, you can achieve with OR
. Example:
SELECT * FROM table1
WHERE (data_col NOT LIKE '%test%'
OR data_col='exceptiontestunique');