我需要过滤一列以仅获取包含字母和数字的行。
这是因为我需要获取所有真实的车牌。
车牌就像:AB12CD或AB123C,因此它们始终包含数字和字母。我不知道该怎么做。

首先,我尝试查看车牌是否为IsNumeric(licenseplate)= 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


至少我的车牌没有#,但是如何过滤所有其他字符?

最佳答案

您可以使用正则表达式:

SELECT licenseplate, DATE_FORMAT(date, '%d/%m/%y'), mileageFROM auto_newWHERE licenseplate REGEXP '(?=.*\d)(?=.*[A-Z])[\d|\w]*' AND Length(Address) = 6GROUP BY licenseplate, mileage

这将确保仅返回长度为6且仅包含字母数字字符的车牌。

关于mysql - MySQL查询选择列包含数字和字母的地方,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40724180/

10-13 03:19