我正在尝试使用SQL进行文件搜索。我需要在我正在进行比较的目录中保持搜索。在SQL中执行LIKE或NOT LIKE比较时,通配符'%'用于表示0,1或多个字符。有没有办法排除或划分该通配符搜索中涉及的字符?我需要进行如下比较:
LIKE 'C:/Data/%.txt'
但是,我不希望'%'找到通配符搜索中涉及斜杠'/'字符的任何记录。我希望它返回如下例子:
C:/Data/file1.txt
C:/Data/records_2017.txt
C:/Data/listing#7.txt
但是我不希望通配符找到包含斜杠的记录,因为在我的情况下,它超出了我感兴趣的文件搜索当前文件夹:
C:/Data/OtherFolder/file1.txt
C:/Data/System/SomethingElse/records_2016.txt
以上示例将被返回,因为Data之后的斜杠和.txt扩展名之间的所有内容都是通配符的免费游戏。我不希望在我的通配符搜索中返回上述示例。
我尝试过做字符集,例如[^ /],但它似乎只能用斜杠'/'字符排除字符串BEGINNING。我需要阻止通配符在字符串中使用斜杠ANYWHERE。
答案 0 :(得分:4)
您无法通过单个LIKE执行此操作,但您可以执行此操作:
WHERE MyColumn LIKE 'C:/Data/%.txt'
AND MyColumn NOT LIKE 'C:/Data/%/%.txt'
答案 1 :(得分:0)
大多数数据库都支持某种形式的正则表达式。例如:
justify-self: start;
特定匹配运算符/函数因数据库而异。
答案 2 :(得分:0)
如果您使用的是Oracle,则可以使用UIView.animate(withDuration: 0.5, animations: {
imageView.transform = CGAffineTransform(rotationAngle: (CGFloat(Double.pi))
}) { (isAnimationComplete) in
// Animation completed
}
代替REGEXP_LIKE
来更好地控制哪些记录匹配。有关如何使用它的详细信息,请查看this document。