Mysql select查询无法搜索符号字符串

标签 mysql

例如,如果我想在下面搜索。

> 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/

相关文章:

php - 无法连接到本地主机mysql数据库

mysql - 将表连接到较早连接的表上

mysql - 连接到 Mysql 选项未在 MS Visual Studio 2017 中显示

php - PDO 使用加密密码连接?

Mysql 查询基于给定总条目限制的不同条目数选择相等的存储桶

php - 如果选择其他单选按钮,则更新表中的特色行 - Laravel 5.2

mysql - 使用mysql从组中选择随机行

mysql - 哪些字符实际上能够导致 MySQL 中的 SQL 注入(inject)?

Mysql IMAGE表设计

java - 在准备好的语句中搜索字符串