我尝试创建一个MySQL查询,当提供邮政编码时,该查询将返回一行(或更多,但我只对单行感兴趣)区域建议。
所以,我有一张像这样的表
area_id | postcode_start
1 | NE
2 | DL
3 | DL1
4 | DL2
5 | DL6
...
我希望提供一个邮政编码,例如DL5 8TB,并在第一个字符匹配时返回行1 | DL
。
另一个示例DL6 4GH
会返回两行,5 | DL6
和2 | DL
SELECT *
FROM (`area_postcodes`)
WHERE CONCAT(LOWER(`area_postcodes`.`postcode_start`),'%')
LIKE 'dl5 8tb';
显然它是一个有效的查询,但它总是返回一个空集。
您已经看到我已将通配符%
添加到查询的另一侧,但它似乎无法正常工作,我也不知道在哪里可以甚至考虑猜测如何去做,它几乎就像正常的MySQL LIKE查询相反。
答案 0 :(得分:5)
你非常接近:
SELECT
*
FROM
area_postcodes
WHERE
'dl5 8tb' LIKE CONCAT(postcode_start, '%');