我想编写一个sql查询,它将获取居住在特定post代码中的所有学生。以下是我的问题。
SELECT * FROM `students` AS ss WHERE ss.`postcode` LIKE 'SE4 1NA';
现在的问题是,在数据库中,有些记录保存时没有空格是邮政编码,比如
SE41NA
,有些记录也可能是小写的,比如se41na
或se4 1na
。查询根据记录的保存方式给出不同的结果。我有什么办法可以处理这个问题吗?
最佳答案
使用regexp
是一种方法。默认情况下,这将执行不区分大小写的匹配。
SELECT * FROM students AS ss
WHERE ss.postcode REGEXP '^SE4[[:space:]]?1NA$';
[[:space:]]?
匹配可选空格字符。REGEXP documentation MySQL