Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从数据库中存储的具有完整路径的文件名中查找确切的文件名_Sql - Fatal编程技术网

Sql 从数据库中存储的具有完整路径的文件名中查找确切的文件名

Sql 从数据库中存储的具有完整路径的文件名中查找确切的文件名,sql,Sql,我需要通过对包含file_name列的表执行SQL查询来找到确切的文件名。在file_name列中,文件的完整路径存储为D:/Workspace/app.js 我可以通过查询找到app.js SELECT * FROM details WHERE file_name LIKE '%app.js' 但问题是如果我像这样编写查询 SELECT * FROM details WHERE file_name LIKE '%p.js' 它还列出了app.js文件。所以,如果文件名是用复杂路径存

我需要通过对包含file_name列的表执行SQL查询来找到确切的文件名。在file_name列中,文件的完整路径存储为D:/Workspace/app.js

我可以通过查询找到app.js

SELECT * 
FROM details 
WHERE file_name LIKE '%app.js'
但问题是如果我像这样编写查询

SELECT * 
FROM details 
WHERE file_name LIKE '%p.js'
它还列出了app.js文件。所以,如果文件名是用复杂路径存储的,任何人都可以指导我如何从数据库中获得文件名的精确匹配? 提前谢谢。

这个怎么样

SELECT * FROM details WHERE file_name LIKE '%/app.js' OR file_name LIKE '%\app.js'
“%”符号用于定义模式前后的通配符(缺少字母)。所以你永远也找不到
%app.js
,因为感谢你们大家,没有
xxxxapps.js
, 我得到了我想要的结果

     sql = "SELECT * FROM details WHERE file_name RLIKE ?";
     ps = conn.prepareStatement(sql);
     ps.setString(1, "[[:<:]]"+fname+"[[:>:]]");
sql=“从文件名类似的详细信息中选择*”;
ps=连接准备状态(sql);
ps.setString(1,“[[::]]”;

这给出了fname Variable所包含的确切字符串。

从文件名“%/app.js”
等详细信息中选择*?使用
%
时,您的意思是查找后缀为
p.js
的所有列,因此没有解决方案。你可以给mysql更多的字符,以获得更少的数据。或者您可以使用
ID
column查找元组。最后,您可以自己查找数据,在
mysql
获取多行数据后,自己选择。@JB NIzet::我确实有一个包含文件名app.js的变量,我需要将数据库中的app.js与包含文件名的变量匹配,并对该文件执行操作。如果我使用您的方法,我需要在文件名之前的变量中添加“/”,但我不希望这样。Thanks@ammy:因此,假设
fileName
是包含文件名(app.js)的变量,请使用
String sqlParameterValue=“%/”+文件名问题出在哪里?@JB Nizet:我使用了你建议的方法,但如果文件名是p.js,它也会对文件执行操作。我试图从数据库中检索,从文件名(如“%\p.js”)的详细信息中选择文件名:此查询列出了包含app.js的文件的路径没有用我确实在变量中有文件名,并且我必须与数据库中的文件匹配。问题是一些文件名是用forwared斜杠存储的(D:/Workspace/app.js)有些是反斜杠(D:\Workspace1\app.js)@ammy嘿,我更改了查询如果这是SQL Server,条件的两部分可以这样组合:
。。。如果文件名像“%[\/]app.js”
。一定有办法,用正则表达式还是别的什么?