MySql where子句搜索失败

时间:2018-09-13 18:37:14

标签: mysql

在MySql Workbench上,我正在做一个简单的搜索查询:

SELECT * 
FROM test.table 
WHERE originalFilePath = 'C:\inetpub\wwwroot\documentScanning\output\REQMAN/2018-09-06_10.03.53/TS18-6289.pdf';

SELECT * 
FROM test.table 
WHERE originalFilePath like '%C:\inetpub\wwwroot\documentScanning\output\REQMAN/2018-09-06_10.03.53/TS18-6289.pdf%';

SELECT * 
FROM test.table 
WHERE originalFilePath like '% C:\inetpub\wwwroot\documentScanning\output\REQMAN/2018-09-06_10.03.53/TS18-6289.pdf %';

但是每个查询始终为空。通过进一步的测试,由于某种原因,该查询似乎不喜欢'C:\ inetpub \ wwwroot \ documentScanning \ output \',这很奇怪,搜索值是直接复制并从表本身粘贴。我已使该查询生效:

SELECT * 
FROM test.table 
WHERE originalFilePath like '%\REQMAN/2018-09-06_10.03.53/TS18-6289.pdf';

但是,此查询将在每2分钟运行一次的脚本中使用,并且数据库非常大,所以我宁愿不使用上面的查询,而是直接搜索(等于),因为有人告诉我使用a通配符搜索可能会使速度变慢。有没有办法做到这一点?有人可以解释为什么它不喜欢搜索中的'C:\ inetpub \ wwwroot \ documentScanning \ output \'吗?

1 个答案:

答案 0 :(得分:0)

您必须将\ in加倍=

您必须将\\变成4倍

SELECT * 
FROM test.table 
WHERE originalFilePath = 'C:\\inetpub\\wwwroot\\documentScanning\\output\\REQMAN/2018-09-06_10.03.53/TS18-6289.pdf';

SELECT * 
FROM test.table 
WHERE originalFilePath like '%C:\\\\inetpub\\\\wwwroot\\\\documentScanning\\\\output\\\\REQMAN/2018-09-06_10.03.53/TS18-6289.pdf%';

SELECT * 
FROM test.table 
WHERE originalFilePath like '% C:\\\\inetpub\\\\wwwroot\\\\documentScanning\\\\output\\\\REQMAN/2018-09-06_10.03.53/TS18-6289.pdf %';