我有一个大数据(大约60万)。
我希望出现值“ word's”的行。
特殊字符将被完全忽略。
表格:
| column_value |
| ------------- |
| word's |
| hello |
| world |
查询:select * from table where column_value like '%words%'
结果:
| column_value |
| ------------- |
| word's |
我希望带有特殊字符的行将出现,并忽略其特殊字符。
您能帮我如何快速运行它吗?
答案 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