在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 \'吗?
答案 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 %';