mysql-列值中的特殊字符

e5njpo68  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(279)

我得到了一个大数据(大约60万)。
我希望显示值为“word”的行。
特殊字符将被完全忽略。
表格:

| column_value  |
| ------------- |
| word's        |
| hello         |
| world         |

查询: select * from table where column_value like '%words%' 结果:

| column_value  |
| ------------- |
| word's        |

我希望带有特殊字符的行将出现并忽略它们的特殊字符。
你能帮助我如何用快速运行来实现它吗?

3j86kqsm

3j86kqsm1#

可以使用replace在匹配之前删除“特殊”字符。

SELECT *
       FROM table
       WHERE replace(column_value, '''', '') LIKE '%words%';

筑巢 replace() 调用其他字符。
或者用正则表达式试试。

SELECT *
       FROM table
       WHERE column_value REGEXP 'w[^a-zA-Z]*o[^a-zA-Z]*r[^a-zA-Z]*d[^a-zA-Z]*s';
``` `[^a-zA-Z]*` 匹配可选字符,这些字符不是a,…,y和z,也不是a,…,y和z,因此这会将搜索词与字母之间的任何非字母匹配。
或者你可以看看全文搜索带来的选项。也许这也有帮助。
5lwkijsr

5lwkijsr2#

必须在列的\u值上添加索引。mysql文档

相关问题