【发布时间】:2021-02-24 16:14:32
【问题描述】:
样本数据
| data_col |
| --------------------|
| Realdata |
| Firsttest |
| testSecond |
| onetesttwo |
| exceptiontestunique |
| legitdata |
我想过滤掉所有包含 test 的数据,除了一个
我的预期返回结果是:
Realdata
exceptiontestunique
legitdata
我可以像这样在 PHP 中编写代码。
if (strpos($data, 'test') === false || $data === 'exceptiontestunique') return $data;
或者像这样在 JavaScript 中
if (data.indexOf('test') === -1 || data === 'exceptiontestunique') {
return data;
}
但我在 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);
【问题讨论】:
-
不一定不喜欢,只要预期的返回结果好就行
-
条件是什么?获取
test是单词开头的一部分还是结尾的一部分?如果test在中间的某个地方,不要返回那个值? -
@FaNo_FN 我已经更新了问题并添加了一个示例。