MySQL如何检查值是否以字母开头,以数字结尾?
我想显示特定的数据,其中所有值仅在cansas市以字母开头,以数字结尾 我的桌子是什么样子的: 酒店房间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
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]$'