搜索字符串mysql db,可以有空格,在另一个字符串中等

Rob*_*o C 5 regex mysql sql replace

我有这个包含产品代码的数据库

EXA 075 11112
0423654
3 574 662 123
JOLA 22354 5
LUCS 2245 785
Run Code Online (Sandbox Code Playgroud)

我使用%LIKE%的查询列出用户输入的字符串的产品,例如"22"将列出

JOLA 22354 5
LUCS 2245 785
Run Code Online (Sandbox Code Playgroud)

问题是用户不一定知道代码的格式,因此它输入07511112并且输出为零,因为"EXA 075 11112"与%LIKE%不匹配.

有没有办法在搜索发生之前构造查询以修剪产品字段中的所有空格,然后使用%LIKE%按字符串搜索空格?我想它应该匹配所有条目.或者还有另一种方式吗?我无法在列上运行替换'',',代码必须保持现在的状态.

dcp*_*986 3

您可以使用替换功能

select *
from mytable
where REPLACE( `productcode` , ' ' , '' ) like '%searchparam%'
Run Code Online (Sandbox Code Playgroud)