regex 如何在SQL搜索查询中忽略空格?

7rtdyuoh  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(124)

我有一个SQL表,其中有一个IP地址的列条目,如5. 5. 44. 4。即5.<space><space>5.<space>44.<space><space>4
我有一个查询搜索这个ip地址一样

select dns_name from toms_table where ip_address like '%5.5.44.4%'

但这并不是仅仅因为ipaddress中的空格而列出dns_name。
如何在sql查询中指示在搜索时忽略表条目中的空间?

aoyhnmkz

aoyhnmkz1#

您需要使用REPLACE删除所有不需要或不想要的字符
如果IP地址只包含'5。44.4 '没有附加字符,你不需要%,mysql不会使用该表的索引,这将提高查询的速度

CREATE tABLE toms_table (ip_address varchar(100), dns_name varchar(4))
INSERT INTO toms_table VALUES ('5.  5. 44.  4','test')
select dns_name from toms_table where REPLACE(ip_address, ' ','') like '%5.5.44.4%'

| dns_name|
| --|
| 测试|

select dns_name from toms_table where REPLACE(ip_address, ' ','') like '5.5.44.4'

| dns_name|
| --|
| 测试|
fiddle

2mbi3lxu

2mbi3lxu2#

REGEXP '\\b5\\s*.\\s*5\\s*.\\s*44\\s*.\\s*4\\b'

(That MySQL 8.0的语法; MySQL 5和MariaDB需要不同的语法。

相关问题