例如,如果我想在下面搜索。
> lav'ro (I can't search it by "lav'r" because of ' in the string)
> am[op]st (I can't search it by "am[o" because of [ in the string)
我的问题是如何使用选择查询来帮助我带来输出?
下面是我的 SELECT 查询。
SELECT * FROM TableName
WHERE (Col1 LIKE '%$value%' OR Col2 LIKE '%$value%')
ORDER BY
CASE WHEN (Col1 LIKE '$value' AND Col2 LIKE '$value') THEN 1
WHEN Col1 LIKE '$value' THEN 2
WHEN Col2 LIKE '$value' THEN 3
WHEN Col1 LIKE '$value%' THEN 4
WHEN Col2 LIKE '$value%' THEN 5
WHEN Col1 LIKE '%$value' THEN 6
WHEN Col2 LIKE '%$value' THEN 7
WHEN Col1 LIKE '%$value%' THEN 8
WHEN Col2 LIKE '%$value%' THEN 9
ELSE 10
END asc,
length(Col1 or Col2) limit 15
这里“$value”用于搜索的动态词。
在普通搜索中运行良好,但在符号搜索中出现问题。
最佳答案
您必须在单引号之前包含\才能使其正常工作
SELECT * FROM `table` WHERE `column` LIKE 'lav\'ro'
对于第二个问题,尝试在之前或之后或两者都附加 %
SELECT * FROM `table` WHERE `column` LIKE '%am[o%'
关于Mysql select查询无法搜索符号字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56089587/