Reputation: 223
I want to show specific data where all the values start with a letter and ends with a number in the city of cansas only.
What my table looks like:
hotelroom
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
What I want:
pID |name | city | key
--------------------------------------------
542 |Z. Francis |Cansas | Z10-30
642 |Q. Snake |Cansas | Z10-25
What I tried and did not work:
SELECT * FROM hotelroom
WHERE city LIKE '%Cansas%' AND
key LIKE '^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ].*[0123456789]$'
Upvotes: 2
Views: 5228
Reputation: 1382
You should use REGEXP, WHERE fields REGEXP regex_string
. Also, you don't have to write all of the alphabet letter, you could just write it like [a-zA-Z]
.
To be specific: a range is a contiguous series of characters, from low to high, in the ASCII character set.[101] For example, [z-a] is not a range because it's backwards. The range [A-z] matches both uppercase and lowercase letters, but it also matches the six characters that fall between uppercase and lowercase letters in the ASCII chart: [, \, ], ^, _, and '.
https://docstore.mik.ua/orelly/unix3/upt/ch32_08.htm
SELECT * FROM hotelroom
WHERE city LIKE '%Cansas%' AND
key REGEXP '^[a-zA-Z].*[0-9]$'
Also,
I want to show specific data where all the values start with a letter and ends with a number in the city of cansas only.
If you only want to get the result from the city of Cansas, you don't have to use LIKE
. If you're using LIKE
, it will also match Cansas2
city or anything that has Cansas
as it's substring.
You could just use equals (=) operator.
SELECT * FROM hotelroom
WHERE city = 'Cansas' AND
key REGEXP '^[a-zA-Z].*[0-9]$'
Upvotes: 2
Reputation: 69440
You should use RLIKE
instead of LIKE
SELECT * FROM hotelroom
WHERE city LIKE '%Cansas%' AND
key RLIKE '^[a-zA-z].*[0-9]$'
The documentation you can find here: https://dev.mysql.com/doc/refman/8.0/en/regexp.html#operator_regexp
Upvotes: 1