mysql - 如何在 MySQL 中搜索没有定义字符的字符串?
问题描述
我在 MySQL 5.7.25 表中存储了唯一标识符,它们是 CHAR 并且包含点和斜杠。
现在我需要在没有这些字符的情况下搜索它们。
例如:已知字符串:25518000
表内:255.18.000
似乎 preg_replace 仅在 MySQL > 8.x 中实现。
如何在忽略某些字符的情况下搜索给定的字符串?
像这样的东西:
SELECT * FROM `cat_attr` WHERE `attr_de` REGEXP '\\.' = 25518000
解决方案
如果它总是点、空格和斜杠,你可以这样做:
SELECT *
FROM cat_attr
WHERE REPLACE(REPLACE(REPLACE(attr_de, '.', ''), '\\', ''), ' ', '') = 25518000;
例如,这将返回 true:
SELECT REPLACE(REPLACE(REPLACE('11\ 11.1', '.', ''), '\\', ''), ' ', '') = 11111;
推荐阅读
- mysql - 有多个键列时如何形成合并查询?
- python-3.x - 如何使用 tkinter.Label 更改文本颜色
- git - 我们可以在不克隆 repo 的情况下获得最后的提交消息吗?
- python - 使用 Python 请求登录 Intuit Qucikbooks
- java - 如何在Android中制作编码字符串?
- java - 未找到 com.google.common.util.concurrent.ListenableFuture 的 Android Studio 类文件
- python - 如何计算给定值数组的百分位数?
- python - 在 Django 中安装 Pillow 时出错
- javascript - Javascript 模板文字和 Html 文本区域
- python - 请解释这个python代码的输出?