mysql - MySQL - 列值中的特殊字符
问题描述
我得到了一个大数据(大约 600,000)。
我希望出现值为“word's”的行。
特殊字符将被完全忽略。
桌子:
| column_value |
| ------------- |
| word's |
| hello |
| world |
询问:select * from table where column_value like '%words%'
结果:
| column_value |
| ------------- |
| word's |
我希望出现带有特殊字符的行并忽略它们的特殊字符。
你能帮助我如何通过快速运行来实现它吗?
解决方案
您可以使用替换来删除匹配之前的“特殊”字符。
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,因此这也匹配您的搜索词以及字母之间的任何非字母。
或者您可以查看全文搜索带来的选项。也许这也有帮助。
推荐阅读
- java - Android 应用程序挂起:由 Java 代码进行的本机函数调用未通过 JNI
- python - 如何对嵌套列表中的元素求和?
- plugins - 有没有办法通过 Fluent-Bit 向 Sentry 发送消息?
- django - Select2ListView 中的自由文本 django-autocomplete-light
- c++ - 对象销毁期间引发的 C++ 读取访问异常
- android - Android:传递recyclerview上显示的数据并填充另一个活动
- regex - 有没有更好的方法来保存 Perl 中正则表达式的替换部分?
- python - 如何比较两个字典的值?
- javascript - 多个 if else 条件的替代品以使其成为单行 - javascript
- python - 打印所有重复的数字