我想编写一个sql查询,它将获取居住在特定post代码中的所有学生。以下是我的问题。

SELECT * FROM `students` AS ss WHERE ss.`postcode` LIKE 'SE4 1NA';

现在的问题是,在数据库中,有些记录保存时没有空格是邮政编码,比如SE41NA,有些记录也可能是小写的,比如se41nase4 1na
查询根据记录的保存方式给出不同的结果。我有什么办法可以处理这个问题吗?

最佳答案

使用regexp是一种方法。默认情况下,这将执行不区分大小写的匹配。

SELECT * FROM students AS ss
WHERE ss.postcode REGEXP '^SE4[[:space:]]?1NA$';

[[:space:]]?匹配可选空格字符。
REGEXP documentation MySQL

07-26 08:45