首页 > 解决方案 > 字符串搜索查询中的空格导致搜索返回没有结果

问题描述

我正在尝试搜索 mySQL 数据库并返回具有最大版本的结果,但是当搜索中有空格时,它总是返回没有结果。

我曾尝试在查询的 select MAX 中使用替换,但这只会导致语法错误。

SELECT document_versions.payload, document_versions.version 
FROM document_versions 
INNER JOIN documents ON documents.guid = document_versions.document_guid WHERE document_versions.title = @name 
AND documents.document_type_id = 35 
AND document_versions.version = 
(SELECT MAX(version) FROM document_versions WHERE title = @name)

我也试过

SELECT document_versions.payload, document_versions.version 
FROM document_versions INNER JOIN documents ON documents.guid = document_versions.document_guid 
    WHERE REPLACE(document_versions.title,' ','') = 
    REPLACE(@name,' ','')
    AND documents.document_type_id = 35 
    AND document_versions.version = 
    SELECT MAX(version) FROM document_versions 
    WHERE REPLACE(title,' ','') = REPLACE(@name,' ',''))  

这也没有返回任何结果。

标签: mysql

解决方案


你试过这样吗?

SELECT document_versions.payload, document_versions.version 
FROM document_versions 
INNER JOIN documents ON documents.guid = document_versions.document_guid 
WHERE document_versions.title = @name 
AND documents.document_type_id = 35 
ORDER BY document_versions.version DESC LIMIT 1

推荐阅读