MySQL如何检查值是否以字母开头,以数字结尾?

MySQL如何检查值是否以字母开头,以数字结尾?,mysql,sql,database,Mysql,Sql,Database,我想显示特定的数据,其中所有值仅在cansas市以字母开头,以数字结尾 我的桌子是什么样子的: 酒店房间 pID |name | city | key -------------------------------------------- 543 |H. Stein |Cansas | 16Z004 542 |Z. Francis |Cansas | Z10-30 642 |Q. Snake |Cansas | Z10-25

我想显示特定的数据,其中所有值仅在cansas市以字母开头,以数字结尾

我的桌子是什么样子的:

酒店房间

pID     |name       |  city |   key
--------------------------------------------
543     |H. Stein   |Cansas   | 16Z004
542     |Z. Francis |Cansas   | Z10-30
642     |Q. Snake   |Cansas   | Z10-25
645     |P. Brown   |Kentucky | Z10-40
我想要的是:

pID     |name       |  city |   key
--------------------------------------------
542     |Z. Francis |Cansas |   Z10-30
642     |Q. Snake   |Cansas |   Z10-25
我尝试过但没有成功的:

SELECT * FROM hotelroom
WHERE city LIKE '%Cansas%' AND
key LIKE '^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ].*[0123456789]$'


您应该使用
RLIKE
而不是
LIKE

SELECT * FROM hotelroom
WHERE city LIKE '%Cansas%' AND
key RLIKE '^[a-zA-z].*[0-9]$'
您可以在此处找到的文档:

您应该使用,
WHERE fields REGEXP regex\u string
。另外,你不必写所有的字母,你可以像
[a-zA-Z]
那样写

具体来说:范围是一系列连续的字符,从低位开始 到高,在ASCII字符集中[101]例如,[z-a]不是 因为它是向后的。范围[A-z]匹配两个大写字母 和小写字母,但它也匹配 在ASCII图表中介于大写和小写字母之间:[,\, ]",

而且

我想显示所有值都以字母开头的特定数据 最后只在堪萨斯市有一个数字

如果您只想从Cansas市获得结果,则不必像那样使用
。如果您使用的是
LIKE
,它还将匹配
Cansas2
城市或任何具有
Cansas
作为其子字符串的内容

你可以用它

SELECT * FROM hotelroom
WHERE city LIKE '%Cansas%' AND
key REGEXP '^[a-zA-Z].*[0-9]$'
SELECT * FROM hotelroom
WHERE city = 'Cansas' AND
key REGEXP '^[a-zA-Z].*[0-9]$'