老实说,我不确定该如何表达。所以我只是要解释这个问题
为了找到尽可能多的匹配项,我目前运行一段代码,将数据转换为大写字母,删除空格和无效字符。例如:
Hi there, I'm very happy! -> HITHEREIMVERYHAPPY
我的数据库已达到无法运行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
只需替换空格...
https://www.w3schools.com/sql/func_sqlserver_replace.asp
SELECT * FROM TABLE WHERE REPLACE(TABLE.COLUMN,'','')= VALUE;
您可能会喜欢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]'
结果:
ID |输入|响应-:| :--------------------------- | :------------------1 |嗨,我很高兴! -> |有1个解决方案。
db <>小提琴here