mysql - 在 SQL 选择搜索中格式化字符串数据
问题描述
老实说,我不知道如何表达这一点。所以我只是解释一下这个问题
为了找到尽可能多的匹配项,我目前运行一段代码,将数据转换为大写,删除空格和无效字符。例如:
Hi there, I'm very happy! -> HITHEREIMVERYHAPPY
我的数据库达到了一个大小,运行检查 a 中每一行的代码不再有效ResultSet
,所以我想知道这是否可能以SQL
某种方式实现?
SELECT * FROM Data WHERE Input.replaceAll("[^a-zA-Z0-9]", "").replace(" ", "").toUpperCase() = INPUT AND Response.replaceAll("[^a-zA-Z0-9]", "").replace(" ", "").toUpperCase() = RESPONSE
解决方案
你可能会喜欢RLIKE。
-- Sample data create table Data ( Id int primary key auto_increment, Input varchar(100), Response varchar(100) ); insert into Data (Input, Response) values ('Hi there, I''m very happy! ->', 'To have 1 solution.') , ('HITHEREIMVERYHAPPY', 'ToHave1Solution') , ('I rlike this', 'IRLikeThis')
询问:
SELECT * FROM Data WHERE Input RLIKE '[^ A-Za-z0-9]' AND Response RLIKE '[^ A-Za-z0-9]'
结果:
身份证 | 输入 | 回复 -: | :---------------------------- | :----------------- 1 | 你好,我很高兴!-> | 有1个解决方案。
db<>在这里摆弄
它基本上使用正则表达式[^ A-Za-z0-9]
,它匹配包含任何不是字母、数字或空格的字符的字符串。
推荐阅读
- .net - 什么是处理长时间运行任务的良好 API 架构?
- testing - Vue.js 测试 toBe() 方法在预期“字符串”等时仅返回对象
- javascript - Angular:使用@Input() 传递数据
- java - 即使网络连接断开,TCP 套接字在发送消息时也不会抛出任何异常
- c# - unity 以水平模式加载场景
- c# - svg2png 性能
- python - 在 Python 2.7 中加载 TensorFlow 模型
- dart - 将类转换为 JSON 或 List
- python - Django 模型管理器根据查找值获取查询集
- python - PostgreSQL WHERE 和空