我有以下数据集。
id | 操作 | 源目标 | |
---|---|---|---|
1 | 添加 | N/A>/root/dir2.trash | |
2 | 添加 | N/A>/root/dir1 | |
3 | 移动 | /home/user||
移动 | /usr/bin | /usr/local/bin | |
5 | MOVE | /usr/sbin/usr/sbin.trash
您的AND
和OR
的行为与您想象的不同,至少优先级不同
这会得到想要的结果,可能是因为它与您的想法相匹配
它确保第一部分始终适用。
SELECT * FROM test WHERE action = 'MOVE' AND ( target LIKE '%.wasted' OR target LIKE '%.trash' )
也就是说,你原来的代码就像";(移动并浪费(或垃圾";。
这类似于2 * 3 + 5
是11,而不是16。