我需要过滤列以仅获取包含字母和数字的行。 因为我需要获得所有真正的车牌。 车牌类似于:AB12CD或AB123C,所以它们总是包含数字和字母。我不知道该怎么做。
首先,我尝试查看牌照是否为IsNumeric(牌照)= 1的号码,以过滤至少所有号码。但它根本不起作用。
SELECT licenseplate, DATE_FORMAT(date, '%d/%m/%y'), mileage
FROM auto_new
WHERE LENGTH(licenseplate) = 6
AND IsNumeric(licenseplate) = 1
AND licenseplate NOT LIKE '%#%'
GROUP BY licenseplate, mileage
至少我没有#的车牌,但我如何过滤所有其他角色?
答案 0 :(得分:2)
您可以使用正则表达式:
SELECT licenseplate, DATE_FORMAT(date, '%d/%m/%y'), mileage
FROM auto_new
WHERE licenseplate REGEXP '(?=.*\d)(?=.*[A-Z])[\d|\w]*' AND Length(Address) = 6
GROUP BY licenseplate, mileage
这将确保只返回长度为6且仅包含字母数字字符的牌照。
答案 1 :(得分:1)
正则表达式是你想要的。有点链接:
select licenseplate FROM auto_new
WHERE licenseplate REGEXP '^[[:alnum:]]+$'