MySQL-列值中的特殊字符

时间:2018-08-07 09:40:55

标签: mysql sql database special-characters

我有一个大数据(大约60万)。

我希望出现值“ word's”的行。

特殊字符将被完全忽略。

表格:

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

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

结果:

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

我希望带有特殊字符的行将出现,并忽略其特殊字符。

您能帮我如何快速运行它吗?

2 个答案:

答案 0 :(得分:1)

您可以使用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,因此这也将您的搜索词与字母之间的任何非alpha字母匹配

或者您可以查看full text search附带的选项。也许也可以帮忙。

答案 1 :(得分:0)

您必须在column_value上添加索引。 MySQL doc