MySQL查询选择列中包含数字和字母的位置

MySQL查询选择列中包含数字和字母的位置,mysql,Mysql,我需要筛选一列,以仅获取包含字母和数字的行。 这是因为我需要得到所有真正的车牌。 车牌像:AB12CD或AB123C,所以它们总是包含数字和字母。我不知道怎么做 首先,我尝试查看licenseplate是否是一个IsNumericlicenseplate=1的数字,以便至少过滤掉所有数字。但它根本不起作用 SELECT licenseplate, DATE_FORMAT(date, '%d/%m/%y'), mileage FROM auto_new WHERE LENGTH(licensepl

我需要筛选一列,以仅获取包含字母和数字的行。 这是因为我需要得到所有真正的车牌。 车牌像:AB12CD或AB123C,所以它们总是包含数字和字母。我不知道怎么做

首先,我尝试查看licenseplate是否是一个IsNumericlicenseplate=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 FROM auto_new
WHERE licenseplate REGEXP '^[[:alnum:]]+$'

正则表达式就是你想要的。有些东西与此相关:

select licenseplate FROM auto_new
WHERE licenseplate REGEXP '^[[:alnum:]]+$'

您可以使用正则表达式:

选择licenseplate,日期\格式日期,'%d/%m/%y',里程 来自auto_new 其中licenseplate REGEXP'?=.*\d?=.[A-Z][\d |\w]*'和LengthAddress=6 按牌照、里程分组


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

您可以使用正则表达式:

选择licenseplate,日期\格式日期,'%d/%m/%y',里程 来自auto_new 其中licenseplate REGEXP'?=.*\d?=.[A-Z][\d |\w]*'和LengthAddress=6 按牌照、里程分组


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

使用:作为跳板。。。如果Licenseplate REGEXP'^[0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+[0-9a-zA-Z]*$”@xQbert谢谢,我想这是最接近我需要的了:这些盘子有具体的订单吗?就像它应该以2或3个字母开始,然后是2或3个数字,最后是1或2个字母,或者它是完全任意的?使用:作为跳板。。。如果Licenseplate REGEXP'^[0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+[0-9a-zA-Z]*$”@xQbert谢谢,我想这是最接近我需要的了:这些盘子有具体的订单吗?比如它应该以2或3个字母开始,然后是2或3个数字,最后是1或2个字母,或者它是完全任意的?它返回我需要的许可证,但也返回所有只包含数字且长度不超过6个字符的许可证。这将确保至少有一个字母存在,一个数字,字符串长度为6个字符。“?=*\d?=*[A-Z].*”和LengthAddress=6个字符,在我的帖子的评论中使用了长度和regexp的组合。它现在工作正常:DIt返回我需要的许可证,但也返回所有只包含数字且长度不超过6个字符的许可证。这将确保至少有一个字母、一个数字以及字符串长度为6个字符。“?=*\d?=**[A-Z].*”和LengthAddress=6个字符,在我的帖子的评论中使用了长度和regexp的组合。它现在可以正常工作了:D